관리 메뉴

Storage Gonie

27. (app2) template 연동 1 본문

웹개발/Django 웹서비스 개발(인프런)

27. (app2) template 연동 1

Storage Gonie 2019. 2. 17. 22:14
반응형

1. views.py의 index 메소드 수정

- Question 모델을 import해줌

- 아래는 수정한 후 localhost:8000/polls 에 접속한 결과

- 객체.order_by 해주면 admin 페이지에 보여지는 순서도 변경된다.

from django.http import HttpResponse
from .models import Question

def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5] # order_by('속성명') : 오름차순, ('-속성명') : 내림차순
output = " ,".join([q.question_text for q in latest_question_list]) # 리스트를 문자열로 바꿔주고 " ,"로 원소 중간중간 넣어주겠다는 것.
return HttpResponse(output)


2. polls폴더 아래에 templates 폴더 생성, templates폴더 아래에 polls폴더 생성, polls폴더 아래에 index.html 생성

- index.html은 아래와 같이 입력한다.

- latest_question_list에 적당한 데이터가 들어있다면  그 아래문장들 실행

- latest_question_list에 적당한 데이터가 들어있지 않다면 else문이 실행되며 "No polls are available" 출력

{% 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 %}


3. views.py의 index 메소드 재수정

- return HttpResponse()가 아닌 render로 템플릿과 연결해준다.

- 아래는 수정한 후 localhost:8000/polls 에 접속한 결과

def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5] # order_by('속성명') : 오름차순, ('-속성명') : 내림차순
context = {'latest_question_list' : latest_question_list}
return render(request, 'polls/index.html', context)



반응형
Comments