본문 바로가기

728x90
반응형

Python

(101)
Django Template filter: {% with %} Django template에서 필터와 필터를 중복해서 써야되는 경우들이 있다. 예를 들어서 mathfilters를 이용해서 연산을 하고, 거기에 특정 리스트의 길이를 더하고 싶을때 |length 필터를 더해줘야 하는데, 이럴 때 원하는 대로 작동을 안한다. 그때 {% with %} 로 원하는 값을 먼저 뽑아와서 용해주면 된다 example 1) {{commits.number|mul:3|add:commits|length}} # X {% with commits|length as commits_length %} # O {{commits.number|mul:3|add:commits_length}} {% endwith %} example2) {% with name|add:"Kim" as re_name %} {%..
STATIC_ROOT vs STATICFILES_DIRS Django에서는 static 파일과 관련한 설정에는 5가지가 있고 STATIC_URL STATIC_ROOT STATICFILES_DIRS STATICFILES_STORAGE STATICFILES_FINDERS 그 중 아래 3가지가 일반적으로 많이 사용이 됩니다. STATIC_URL STATIC_ROOT STATICFILES_DIRS STATIC_URL의 경우, static 경로에 접근하기 위해 설정해주는 url이라 개념적으로 헷갈릴게 거의 없는데, STATIC_ROOT와 STATICFILES_DIRS 는 둘다 static 파일들을 다룬다는 점에서 헷갈리게 합니다. 결론적으로만 말하면 STATIC_ROOT는 배포 단계(deployment)에서 필요하고 STATICFILES_DIRS는 개발 단계(devel..
Python: insert() # insert argument in list list의 원하는 index에 값을 넣어주는 함수 insert(index, argument) ex) list_1 = [1,2,3] list_1.insert(2, 10) print(list_1) list_1.insert(0,('a,','b')) print(list_1) list_1.insert(2,['가','나']) print(list_1) list_1.insert(2,{'!', '@'}) print(list_1) # output [1, 2, 10, 3] [('a,', 'b'), 1, 2, 10, 3] [('a,', 'b'), 1, ['가', '나'], 2, 10, 3] [('a,', 'b'), 1, {'!', '@'}, ['가', '나'], 2, 10, 3]
Python: json.loads() # string to dict # doble quotes # Boolean python에서 dictionary 모양으로 되어 있는 string을 dictionary 타입으로 바꿔주는 방법 중에 json이 있습니다. import json # Assume that dict_shaped_string string_to_dict = json.loads(dict_shaped_string) print(type(string_to_dict) # output: 'dict' 그런데 json.loads를 이용할 때 주의할 점이 있습니다. 대표적으로 - ' 이 아니라 " 을 써야하는 점(double quote) - Javascript 형태로 boolean을 써야하는 점입니다.(True/False: X, true/false: O) 구체적인 예제코드로 살펴보겠습니다. import json sample_1..
__init__.py # import # from . 모듈 파이썬 스크립트 파일을 다른 곳에서 호출할 때 그 파일을 모듈이라고도 합니다. 즉, 호출이 되어지는 파이썬 파일은 모듈이라고 합니다. 설명의 편의상 파이썬 파일을 모듈이라고 하겠습니다. 한 디렉토리 안에서 모듈을 호출 하는 것 외에 어떤 디렉토리에 있는 모듈을 외부에서 호출해올 때를 생각해 보겠습니다. p_test.py [ inner ] i_test.py inner 디렉토리 안의 i_test.py에 아래 함수를 작성 # inner/i_test.py def inner_add(a,b): print(a+b) 이제 p_test.py에서 inner/i_test.py의 inner_add 함수를 몇가지 방식으로 호출해서 실행해봅시다. 1) from [디렉토리] import [모듈] from inner impor..
Django: Database data dump # json으로 데이터 백업, 복구 Django에서 DB를 옮길 때 편하게 사용할 수 있는 기능입니다. * dumpdata data를 json형태로 담아둡니다. 1) 전체 테이블 dump python manage.py dumpdata > data.json 2) 일부 테이블 or 그 중의 일부 모델만 python manage.py dumpdata app_label1 app_label2.ModelName > data.json 3) --format python manage.py dumpdata app_label --format xml > data.xml # default는 json * loaddata python manage.py loaddata data.json json, 또는 xml, 그리고 yaml 도 가능합니다. 단, yaml은 PyYA..
ORM queries: .aggregate() Count, Sum, Avg, Max, Min, Variance(분산), StdDev(표준편차) examples from django.db.models import Sum, Count, Avg, Min, Max, StdDev, Variance def shopw_view(request): total_fruits = Fruits.objects.aggregate(Count('id')) avg_fruits = Fruits.objects.aggregate(Avg('name')) min_max_prices = Fruits.objects.aggregate(Min('price'), Max('price')) price_stddev = Fruits.objects.aggregate(StdDev('price')) price_..
sum() in Python sum()안에 리스트 등을 담아서 하면 number 같은 경우 합계가 나오는데 sum 안에 리스트 컴프리헨션을 당연히 넣어도 되고 sum 안에 리스트 컴프리헨션을 넣는 방식대로 하는데 []를 빼고 담아도 됩니다. 리스트 컴프리헨션에서 리스트가 빠지니까 그냥 컴프리헨션이라 해야하나... ex) my_list = [('a', 1), ('b', 2), ('c', 3)] total = sum(tuple[1] for tuple in my_list) print(total) # Output: 6 total = sum(tuple[1] for tuple in my_list if tuple[1] % 2 == 0) print(total) # Output: 2 참고 sum()으로 string을 합칠순 없다. string은 j..

728x90
반응형