Django学习【第三篇】:编写你的第一个Django应用

视图

视图原理

视图是Django应用中的一“类”网页,它通常使用一个特定的函数提供服务,并且具有一个特定的模板。例如,在博客应用中,可能有以下视图:

  • 博客首页 —— 显示最新发表的博客。
  • 博客“详细”页面 —— 单篇博客的固定链接页面。
  • 基于年份的归档页面 —— 显示某给定年份里所有月份发表过的博客。
  • 基于月份的归档页面 —— 显示在给定月份中发表过博客的所有日期。
  • 基于日期的归档页面 —— 显示在给定日期中发表过的所有博客名称。
  • 评论 —— handles comment for a entry

在我们的投票应用中,将有以下四个视图:

  • Question首页 —— 显示最新发布的几个Question。
  • Question“详细”页面 —— 显示单个Question的具体内容,不显示该议题的当前投票结果,而是提供一个投票的表单。
  • Question“结果”页面 —— 显示特定的Question的投票结果。
  • 投票功能 —— 处理对Question中Choice的投票。

在Django中,网页的页面和其他内容都是由视图来传递的(视图对WEB请求进行回应)。 每个视图都是由一个简单的Python函数(或者是基于类的视图的方法)表示的。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(正则表达式))

  是一种用来匹配字符串中模式的语法,在这里是URL模式。 Django从第一个正则表达式开始,依次将请求的URL与每个正则表达式进行匹配,直到找到匹配的那个为止。

  请注意,这些正则表达式不会检索URL中GET和POST的参数以及域名。

url()参数:view

  当Django找到一个匹配的正则表达式时,它就会调用view参数指定的视图函数,并将HttpRequest对象作为第一个参数,从正则表达式中“捕获”的其他值作为其他参数,传入到该视图函数中。如果正则表达式使用简单的捕获方式,值将作为位置参数传递; 如果使用命名的捕获方式,值将作为关键字参数传递。

url()参数:kwargs

  任何关键字参数都可以以字典形式传递给目标视图。

url()参数:name

  命名你的URL。 这样就可以在Django的其它地方尤其是模板中,通过名称来明确地引用这个URL。 这个强大的特性可以使你仅仅修改一个文件就可以改变全局的URL模式。

编写更多的视图

 

编写拥有实际功能的视图

 

  每个视图函数只负责处理两件事中的一件:返回一个包含所请求页面内容的 HttpResponse对象,或抛出一个诸如Http404异常。该如何去做这两件事,就看你自己的想法了。

 

  你的视图可以从数据库中读取记录,或者不读取数据库。 你还可以动态地生成一个PDF文件、输出XML文件、创建一个ZIP文件或者使用你想用的Python 库生成任何想要的形式。

 

  Django只要求返回的是一个HttpResponse或者抛出一个异常。

 

posted @ 2016-07-31 21:49  每天进步一点点!!!  阅读(194)  评论(0编辑  收藏  举报