【NB】编写视图实现功能
http://cdn.u1.huluxia.com/g4/M02/E2/CC/rBAAdmNsa3KAPoeGAADQ4EfoNCk167.jpg
每个视图负责做两件事情之一:返回包含所请求的页面内容的 HttpResponse 对象,或抛出一个异常,如HTTP 404。 修改polls/views.py文件代码如下:
from django.http import HttpResponse
from .models import Question
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
output = ', '.join()
return HttpResponse(output)
# Leave the rest of the views (detail, results, vote) unchanged
http://cdn.u1.huluxia.com/g4/M02/E2/CC/rBAAdmNsa3OAR4X6AAIx2gEVHI8819.jpg
在这里有一个问题就,通过:网页设计是硬编码在视图中。如果想改变页面的样子,必须编辑这个 Python 代码。因此,让我们使用 Django 模板系统通过创建视图可以使用模板来分开Python 的代码。polls/templates/polls/index.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 %}http://cdn.u1.huluxia.com/g4/M02/E2/CC/rBAAdmNsa3SAW5moAAGSnUXw-Ao665.jpg
现在我们来更新首页视图 polls/views.py使用以下模板(代码):
from django.http import HttpResponse
from django.template import loader
from .models import Question
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {
'latest_question_list': latest_question_list,
}
return HttpResponse(template.render(context, request))
http://cdn.u1.huluxia.com/g4/M02/E2/CC/rBAAdmNsa3WAAtmWAAJ5s_qlRe4115.jpg
该代码加载模板调用polls/index.html,然后传递给它的上下文。上下文是一个字典以Python对象映射模板变量名。现在访问URL(http://127.0.0.1:8000/polls/)查看结果 :http://cdn.u1.huluxia.com/g4/M02/E2/CC/rBAAdmNsa3WAVW1fAAC6FUHb7to573.jpg
页:
[1]