一、编写更多视图
- 问题详情页——展示某个投票的问题和不带结果的选项列表。
- 问题结果页——展示某个投票的结果。
- 投票处理器——用于响应用户为某个问题的特定选项投票的操作。
# 1.问题详情页:展示某个投票的问题和不带结果的选项列表
def detail(request,question_id):
# 404异常处理-传统方式
# try:
# question = Question.objects.get(pk=question_id)
# except Question.DoesNotExist:
# raise Http404("Quesition does not exit")
question = get_object_or_404(Question,pk=question_id)
return render(request,"polls/detail.html",{"question":question})
# 2.问题结果页:展示某个投票的结果
def results(request,question_id):
response = "You're looking at the results of question %s."
return HttpResponse(response % question_id)
# 3.投票处理器:用于响应用户为某个问题的特定选项投票的操作
def vote(request,question_id):
return HttpResponse("You're voting on question %s." % question_id)
二、配置urlCONF
为新增的三个视图配置urlCONF
三、创建模板文件
在 polls
目录里创建一个 templates
目录。Django 将会在这个目录里查找模板文件。
默认的设置文件设置了 DjangoTemplates
后端,并将 APP_DIRS 设置成了 True。这一选项将会让 DjangoTemplates
在每个 INSTALLED_APPS 文件夹中寻找 "templates" 子目录。这就是为什么尽管我们没有像在第二部分中那样修改 DIRS 设置,Django 也能正确找到 polls 的模板位置的原因
四、剔除模板中的硬编码
绿色部分的polls来源自app视图名字:
detail则来源自:
最终绿色的链接部分会跳转到:
五、页面效果
点击链接: