当前位置: 代码迷 >> 综合 >> Django学习3:views,urls
  详细解决方案

Django学习3:views,urls

热度:56   发布时间:2023-12-12 11:28:53.0

Django学习3

?views是一个面向public的接口,它是项目中提供特定功能的页面。在Django中web的页面以及一些其他的内容都是通过view来表达,Django利用url的检查,拆分来选择views来显示。教程中的polls的项目需要如下几个views:

  1. Question索引:用来显示最近发布的Question。
  2. Question详情:显示Question的内容以及可以投票的表单。
  3. Question结果:显示当前的Question的投票结果。
  4. 投票动作:为Question投票。

?关于urls的全部用法课参见 url dispather

step1:view练习

?我们之前已经在polls/views.py中创建了一个index的views,现在继续添加如下的views:

#这里%s是python的新特性,甚至可以用元组来在一个地方插入数个string
def detail(request, question_id):return HttpResponse("You're looking at question %s." % 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)

?这里需要注意的就是%s的用法,具体在stackoverflow上 有解答。
?完成了上述工作后就需要让这些views可以被使用,在polls/urls.py中可以增加如下代码让这些views能根据request被访问:

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'),
]

?这样比如输入”127