一、编写更多视图
- 问题详情页——展示某个投票的问题和不带结果的选项列表。
- 问题结果页——展示某个投票的结果。
- 投票处理器——用于响应用户为某个问题的特定选项投票的操作。
# 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则来源自:

最终绿色的链接部分会跳转到:

五、页面效果

点击链接:



















