- order_by() : 조회한 데이터를 특성 속성으로 정렬하는 함수
- create_date : 작성일시의 순서 (-가 붙으면 역순)
변수 = 모델.objects.order_by('create_date')
context = {'키값(보통동일하게사용)' : 변수}
- render() : 딕셔너리 형태의 데이터(context)를 html 코드로 변환
이때 변환된 html 코드를 템플릿이라고 하며, 장고의 태그를 사용할 수 있는 html 파일
from django.shortcuts import render
...
def index(request):
...
return render(request, '앱/html파일명.html', context);
루트 폴더에 templates 폴더 생성
>>> mkdir templates
config/settings.py에서 TEMPLATES 속성 변경
# 템플릿 디렉토리의 위치를 변경
TEMPLATES = [ {
...
'DIRS' : [BASE-DIR / 'templates'],
...
} ]
- 분기 : if-elif-else문
{% if 딕셔너리키값 %} # 키값이 있다면의 의미
...
{% else %}
...
{% endif %} # 마지막에 {% endif %}
- 반복 : for문
{% for item in list %}
...
{% endfor %}
# for문은 forloop 객체를 사용할 수 있음
forloop.counter # for문의 순서를 표현하며 1부터 시작
forloop.counter0 # for문의 순서를 표현하며 0부터 시작
forloop.first # for문의 첫 번째 순서인 경우 True
forloop.last # for문의 마지막 순서인 경우 True
- 출력
{{ item }}
{{ item.id }}
상세 페이지 제작
사용자가 요구하는 id(ex. 앱/2)를 가지고 상세 페이지를 제작할 때
# 앱/urls.py
...
urlpatterns = [
...
path('<int:파라미터명>', views.함수), # int값이 들어오면 question_id에 넣어 파라미터로 반환
]
요구하는 id와 실제 모델 데이터를 비교하여 값을 찾음
-> 존재하지 않는 데이터를 찾는 경우 에러가 발생함
def 함수(request, 파라미터명): # 앞에서 만든 파라미터를 사용
변수 = 모델.objects.get(id=파라미터명) # 파라미터와 동일한 id를 가진 데이터를 변수에 넣음
context = {'키값' : 변수}
return render(request, 'html파일명.html', context)
에러 대신 404를 띄우도록 수정
def 함수(request, 파라미터명): # 앞에서 만든 파라미터를 사용
# 변수 = 모델.objects.get(id=파라미터명)
변수 = get_object_or_404(모델, pk=파라미터명) # 있으면 변수에 저장, 없으면 404 페이지 반환
context = {'키값' : 변수}
return render(request, 'html파일명.html', context)
[Django] 마크다운 문법(사용) & 설치 & 적용 방법 (0) | 2021.07.22 |
---|---|
[Django] 템플릿 상속 (0) | 2021.07.18 |
[Django] 모델을 이용한 데이터 관리 (0) | 2021.07.16 |
[Django] 장고 URL 및 뷰 (0) | 2021.07.15 |
[Django] 장고 설치 및 실행 방법 (0) | 2021.07.14 |