728x90
view
view를 사용하여 만들 것 4가지
- 색인 페이지 (index) - 최근 질문들 표시
- 세부 페이지 (detail)
- 결과 페이지 (results)
- 투표 기능 (vote)
Django는 URL을 조사하여 화면에 보이게 될 view를 선택한다. - URLconfs 사용
또한 뷰는 PDF 생성이나 XML 출력, 실시간으로 ZIP파일을 만들 수 있다.
Django는 페이지의 정보가 담긴 HttpResponse 객체를 반환하거나, 예외를 발생시킨다.
Template namespacing
뷰에서 사용할 수 있는 템플릿을 작성하여 python 코드로 부터 디자인 영역을 분리한다!
Django에게 정확한 템플릿을 지정해주기 위하여 이름공간(namespacing)으로 구분짓는다.
polls/templates/polls 이 곳에 detail.html을 만들고,
다음과 같이 작성한다.
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
polls/view.py 에 돌아와서
from django.shortcuts import render, get_object_or_404
def detail(request, question_id):
# 방법 1
# try:
# question = Question.objects.get(pk=question_id)
# except Question.DeosNotExist:
# raise Http404("Question does not exist")
# return render(request, 'polls/detail.html', {'question': question})
# 방법 2
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/detail.html', {'question': question})
tip: render()
를 사용하면 손쉽게 코드를 작성할 수 있다.
404 에러 일으키기
728x90
'lang > Django' 카테고리의 다른 글
Django 앱 작성하기 part5 [test] (4) | 2019.07.12 |
---|---|
Pycharm 단축키 (255) | 2019.07.12 |
Django 앱 작성하기 part4 [form] (242) | 2019.07.12 |
Django 앱 작성하기 part2 [model] (613) | 2019.07.11 |
댓글