티스토리 뷰
ModelCls.objects
- Default Manager로서 ModelCls.objects가 제공된다.
- 일반적으로 order_by를 해주는 것이 좋다.
- ModelCls.objects.all()
- ModelCls.objects.all().order_by('-id')[:10] => SELECT * FROM app_model ORDER BY id DESC LIMIT 10;
- ModelCls.objects.create(title="New Ariticle") => INSERT INTO app_model (title) VALUES ("New Ariticle");
filter vs exclude
- parameter로 "필드명 = 조건값"을 지정한다.
=> Item.objects.filter(name="New Item", price =3000) (SQL에서 WHERE)
=> Item.objects.exclude(name="New Item", price=3000) (SQL에서 WHERE NOT)
- 1개 이상의 parameter를 지정하면 모두 AND 조건으로 묶인다.
- OR 조건을 묶으려면, django.db.models.Q를 활용한다.
=> from django.db.models import Q
Item.objects.filter(Q(name="New Item") & Q(price=3000))
Item.objects.filter(Q(name="New Item") | Q(price=3000))
requirements.txt
- requirements.txt를 통해 여러 라이브러리를 한번에 설치 가능하다.
=> pip install -r requirments.txt
MEDIA_ROOT
- os.path.join(BASE_DIR.. 에서 BASE_DIR은 프로젝트 settings에서 기본으로 설정되어있는 디렉토리이다.
- BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
- __file__ : python 파일이 import 될 때의 경로를 담고있다. 위의 경우는 settings.py가 된다.
- abspath : 경로를 절대경로로 바꿔준다.
- dirname : 상위 폴더를 의미한다.
즉, BASE_DIR은 settings.py의 상위폴더(프로젝트 내에서 프로젝트 이름과 같은 폴더)의 상위폴더(manage.py가 존재하는 프로젝트 최상위 폴더)를 의미한다.
os.path.join(BASE_DIR, 'media')
- BASE_DIR(프로젝트 root 디렉토리) 아래에 'media'란 폴더에 저장하겠다는 의미
- os.path.join(BASE_DIR, '..', 'public', 'media')
=> 프로젝트 디렉토리에서 한단계 더 나가서 'public' 폴더 아래에 'media' 폴더에 저장하겠다.
project/urls.py에서 settings를 import하기
- urls.py에서 settings를 import할 때 from (프로젝트이름) import settings 할 수 있지만 이렇게 하면 안된다.
- 우리가 사용해야할 settings는 django에서 기본 제공하는 from django.conf import global_settings와 내가 만든 프로젝트의 settings를 합친 것이다.
- from django.conf import settings를 써주면 django가 위의 두가지를 합쳐준다.
- os.path.join(BASE_DIR, '..', 'public', 'media')
=> 프로젝트 디렉토리에서 한단계 더 나가서 'public' 폴더 아래에 'media' 폴더에 저장하겠다.
MEDIA_URL
- 파일에 의한 MEDIA 접근시에 사용되는 url이다.
(ex) MEDIA_URL = '/media/'
- localhost:8000/media/요청하는파일명
static function in project urls.py
- from django.conf.urls.static import static 로 불러온다.
- urls.py로 들어온 media 요청을 처리하기위해 urlpatterns에 추가해준다.
=> urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)(url 리스트를 준다)
'Web > Python | Django' 카테고리의 다른 글
{{ Django }} - Slicing in django templates (0) | 2020.10.15 |
---|---|
{{ Django }} - Request_Response Cycle (0) | 2020.09.29 |
{{ Django }} - Django admin (0) | 2020.09.20 |
{{ Django }} - Model Migration (0) | 2020.09.20 |
{{ Django }} - 장고 주요 구성요소 (0) | 2020.09.20 |
- Total
- Today
- Yesterday
- PassingCars#Codility#Python
- 텀 프로젝트#백준알고리즘#Python
- 병든 나이트#BOJ#탐욕법#Python
- Triangle#Sorting#Codility#Python
- 섬의개수#백준알고리즘#Python
- 암호코드#dp#BOJ#Python
- 토마토#백준알고리즘#Python
- 반복수열#백준알고리즘#Python
- N으로 표현#DP#Programmers#Python
- 종이자르기#분할정복#BOJ#Python
- API#lazy#
- 리모컨#완전탐색#BOJ#Python
- Swift#Tuples#Range
- 순열사이클#BOJ#Python
- 랜선자르기#이분탐색#BOJ#Python
- 파이썬알고리즘인터뷰#4장
- 배열합치기#분할정복#BOJ#Python
- 쿼드트리#BOJ#분할정복#Python
- 백준 알고리즘#BackTracking
- Brackets#Stacks and Queues#Codility#Python
- 나무자르기#BOJ#이분탐색#Python
- Distinct#Codility#Python
- 공유기 설치#BOJ#이분탐색#Python
- filter#isalnum#lower
- 미로 탐색#백준알고리즘#Python
- 날짜 계산#BOJ#완전탐색#Python
- django#slicing
- NumberofDiscIntersections#Codility#Sort#Python
- django
- 터틀비치#리콘#xbox#controller
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |