视图(view)是Django应用中的网页类型,一般作为一种特定的功能和有一种特定的模版。例如,在一个博客应用中,你可能有下面的视图:
- 博客主页:展示最新的条目
- 条目详情页:单个条目的详细介绍
- 以年为单位的档案页:展示特定年份所有月份的条目
- 以月为单位的档案页:展示特定月份所有天的条目
- 以日为单位的档案页:展示特定日的条目
- 评论页:处理特定条目的评论
在我们这个投票应用中,我们有以下四个视图:
- 默认问题页:展示最新的问题
- 问题详情页:展示一个问题文本,没有结果但是有投票的表单
- 问题结果页:展示特定问题的结果
- 投票页:处理特定问题特定选择的投票
在Django中,网页和其他内容是由视图来表达的。每个视图是由一个单独的python函数或者方法来表示的。Django会根据请求的URL来选择一个视图。
你在网络中,可能会遇到这样的网址ME2/Sites/dirmod.asp?sid=&type=gen&mod=Core+Pages
。你要知道Django允许我们写比这个更加优雅的URL模式。
URL模式就是一般的URL形式,例如/newsarchive/<year>/<month>
为了从一个URL到一个视图,Django使用了所谓URLconfs
的东西,一个URLconf
映射URL模式。
让我们来写第一个视图。打开polls/views.py
文件,编辑代码:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello,world.You're at the poll index")
这可能是Django中最简单的视图了,为了调用这个视图,我们需要将它映射到一个URL,为了实现这个,我们需要一个URLconf
。为了在polls
目录下创建URLconf
,你需要创建一个urls.py
文件,现在你应用的目录是这样的:
在polls/urls.py
文件中,包含下面的代码:
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$',views.index,name='index'),
]
下一步是在polls.urls
模块中指出根URLconf
。在mysite/urls.py
插入一个include()
。如下面所示:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/',include('polls.urls')),
]
现在你将一个index
视图配置到URLconf
中了。在你的浏览器中打开http://127.0.0.1:8000/polls/
,你就能到看文本”Hello,world.You’re at the polls index”,这是你在index
视图总定义的。