编写视图
每个视图只负责两件事中的一件:返回一个包含请求的页面内容的HttpResponse对象,或抛出一个异常如Http404.
剩下的就看你了。
通常,一个视图会根据参数来检索数据,加载一个模块然后使用检索出来的数据渲染模板。
下面是上文year_archive的一个视图例子:
mysite/news/views.py
from django.shortcuts import render
from .models import Article
def year_archive(request, year):
a_list = Article.objects.filter(pub_date__year=year)
context = {'year': year, 'article_list': a_list}
return render(request, 'news/year_archive.html', context)
node2:/app/mysite/news#vim ../mysite/settings.py
node2:/app/mysite/news#pwd
/app/mysite/news
node2:/app/mysite/news#cat templates/news/year_archive.html
{% block title %}Articles for {{ year }}{% endblock %}
{% block content %}
<h1>Articles for {{ year }}</h1>
{% for article in article_list %}
<p>{{ article.headline }}</p>
<p>By {{ article.reporter.full_name }}</p>
<p>Published {{ article.pub_date|date:"F j, Y" }}</p>
{% endfor %}
{% endblock %}