视图
视图原理
例如,在博客应用中,可能有以下视图:
- 博客首页 —— 显示最新发表的博客。
- 博客“详细”页面 —— 单篇博客的固定链接页面。
- 基于年份的归档页面 —— 显示某给定年份里所有月份发表过的博客。
- 基于月份的归档页面 —— 显示在给定月份中发表过博客的所有日期。
- 基于日期的归档页面 —— 显示在给定日期中发表过的所有博客名称。
- 评论 —— handles comment for a entry
在我们的投票应用中,将有以下四个视图:
- Question首页 —— 显示最新发布的几个Question。
- Question“详细”页面 —— 显示单个Question的具体内容,不显示该议题的当前投票结果,而是提供一个投票的表单。
- Question“结果”页面 —— 显示特定的Question的投票结果。
- 投票功能 —— 处理对Question中Choice的投票。
Django通过检查请求的URL(准确地说,是URL里域名之后的那部分)来选择使用哪个视图。
编写你的第一个视图
编写第一个视图
配置调用该视图(两层设置,一层主,一层自定义应用级别)
# polls/urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index, name='index'), ]
# mysite/urls.py from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^polls/', include('polls.urls')), url(r'^admin/', include(admin.site.urls)), ]
url()参数讲解
url()参数:regex(regular expression(正则表达式))
Django从第一个正则表达式开始,依次将请求的URL与每个正则表达式进行匹配,直到找到匹配的那个为止。
请注意,这些正则表达式不会检索URL中GET和POST的参数以及域名。
url()参数:view
如果使用命名的捕获方式,值将作为关键字参数传递。
url()参数:kwargs
任何关键字参数都可以以字典形式传递给目标视图。
url()参数:name
这个强大的特性可以使你仅仅修改一个文件就可以改变全局的URL模式。
编写更多的视图
编写拥有实际功能的视图
该如何去做这两件事,就看你自己的想法了。
你还可以动态地生成一个PDF文件、输出XML文件、创建一个ZIP文件或者使用你想用的Python 库生成任何想要的形式。
或者抛出一个异常。