视图是一个可调用对象,它接受一个请求而后返回一个响应。 python
使用基于类的视图的核心是容许你使用不一样实例方法来形影不一样的HTTP请求方法,而不是在一个视图函数中使用条件分支代码来实现。 django
由于Django的URL解析器将请求和关联的参数发送给一个可刁颖的函数儿不是一个雷,因此基于类的视图有一个as_view()类方法类做为类的可调用入口。改as_view()入口点建立类的一个实例并调用dispatch()方法。diapatch查看请求是GET仍是POST等等,并将请求转发给相应的方法,若是发方法没有定义则引起HttpResponseNotAllowed。 segmentfault
设置了类的属性: 函数
urlpatterns = [ url(r'^about/', GreetingView.as_view(greeting="G'day")), ]
对于每一个请求都会实例化类的一个实例,可是as_view()入口点设置的类属性值在URl第一次导入时配置。 url
将共同的行为运用于多个类的一种方法是编写一个封装as_view()的方法Mixin。 spa