在Django中,网页和其他内容由视图提供。每个视图都由一个简单的Python函数(或基于类的视图的方法)表示。Django将通过检查所请求的URL(确切地说,是域名后面的URL部分)来选择视图。
在我们的民意调查申请中,我们将有以下四种view:
- 问题“索引”页面 - 显示最新的几个问题。
- 问题“详细信息”页面 - 显示问题文本,没有结果,但有一个表单可以投票。
- 问题“结果”页面 - 显示特定问题的结果。
- 投票行动 - 处理特定问题中特定选择的投票。
为了从URL到视图,Django使用所谓的“URLconfs”。URLconf将URL模式映射到视图。
原理:
实现步骤:
1.编辑polls/views.python的内容
from django.http import HttpResponse from .models import Question def index(request): output=','.join([q.question_text for q in last_question_list]) return HttpResponse(output) def detail(request,question_id): response="You're looking at question %s." return HttpResponse(response % question_id) def results(request,question_id): response="You're looking at the results of question %s." return HttpResponse(response % question_id) def vote(request,question_id): return HttpResponse("You're voting on question %s." % question_id)
2.编辑urlConf的映射 polls/urls.py
from django.urls import path from . import views urlpatterns = [ # ex: /polls/ path('', views.index, name='index'), # ex: /polls/5/ path('<int:question_id>/', views.detail, name='detail'), # ex: /polls/5/results/ path('<int:question_id>/results/', views.results, name='results'), # ex: /polls/5/vote/ path('<int:question_id>/vote/', views.vote, name='vote'), ]
测试一下