Django基本视图

下面这三个类也许不能提供项目所需的所有的功能,这些应用于基于类的视图或Mixins情形下。

大多数Django的内建视图继承于其他基于类的视图或者各种mixins中,因为继承链是很重要的。

View

  class django.views.generic.base.View

这是基于类视图的主控类,所有的其他的基于类的视图都这个基类。严格来说他不是一个通用视图,但也可被导入。

Method Flowchart 方法流程图

  1. dispatch()

  2. http_method_not_allowed()

  3. options()

属性:

  http_method_names

这个视图接受的HTTP方法名,默认为(get,post,put,patch,delete,head,options,trace)

方法:

  classmethod as_view(**initkwargs)

返回一个可调用的视图,接受一个request,会返回一个response。

response=MyView.as_view()(request)

返回的view拥有view_class和view_initkwargs属性

在请求/响应的周期内,当这个视图被调用,HttpResquest被分配到这个View的request属性上。从URL pattern上捕获的任何位置或者关键字参数,将会被分配到args和kwargs属性上,之后ispatch()被调用。

  dispatch(request,*args,**kwargs)

这个方法接收一个request参数以及其他参数,返回一个HTTP response。

这个方法的默认实现将会检查HTTP方法并尝试委托匹配该HTTP方法的方法。GET将会委托给get()方法。POST委托为post()。

默认情况下HEAD请求将会委托给get(),如果需要可以覆写。

  http_method_not_allowed(request, *args, **kwargs)

如果一个HTTP方法不被支持,该方法将会被调用,默认实现是返回一个HttpResponseNotAllowed。

options(request, *args, **kwargs)

    处理这针对OPTIONS HTTP verb的请求的相应,返回一个响应,允许头部包含视图允许的HTTP方法名的列表。

TemplateView

  class django.views.generic.base.TemplateView

    渲染一个给定的模板,并伴随一个上下文,包含了从URL中捕获的参数。

    这个视图继承的方法和属性来自下面这些视图:

  django.views.generic.base,TemplateResponseMixin

  django.views.generic.base.ContextMixin

  django.views.generic.base.View

Method Flowchart 方法流程图

  1. dispatch()

  2. http_method_not_allowed()

  3. get_context_data()

  从URL pattern捕获的关键字参数进行填充(通过ContextMixin)

  你也可以extra_context关键字为这个as_view添加上下文。

RedirectView

  class django.views.generic.base.RedirectView

    重定向给定的URL。

    这个给定的URL可能包含字典样式的格式化字符串,从URL上捕获的参数将据此进行插入。因为关键字插入总是要做的,即使没有参数被传入。在URL中的任何%字符必须写成%%,以便能够输出单个%。

    这个视图继承的方法和属性来自以下视图:

django.views.generic.base.View

Method Flowchart 方法流程图

  1. dispatch()

  2. http_method_not_allowed()

  3. get_redirect_url()

属性:

  url

   重定向的URL,为一个字符串,或者None,抛出一个410 HTTP ERROR。

  pattrern_name

     重定向的URL pattern名,和使用args和kwargs一样,被传入到这个视图,将会进行revsering。

  permanent

    重定向是否是永久的,这个唯一的不同的是返回的状态码不同。如果为True,这个重定向将使用301的状态码,如果为False,这个重定向将使用302的状态码,默认为False。

  query_string

   是否将GET查询字符串传递进去。如果为True,这个字符串将会添加到URL后面,如果为False,将会被丢弃。

方法:

  get_redirect_url(*args, **kwargs)

  构造重定向的目标URL。

最新文章

  1. nyoj 71 独木舟上的旅行(贪心专题)
  2. linux系统ftp命令
  3. RSA加密
  4. dubbo-admin和dubbo-monitor-simple的布署
  5. libtcc使用问题一二
  6. 管子&小白
  7. C++Primer 第六章
  8. iPhone 6/iPhone 6 Plus硬件性能
  9. [c++]程序的内存划分理解
  10. topcoder算法练习3
  11. 正则表达式:网页爬虫:从TXT中获取邮箱地址(获取的练习,缺点:一行只能匹配一个)
  12. 基于ArcEngine的影像数据管理系统研制
  13. VOJ 1067 Warcraft III 守望者的烦恼 (矩阵高速功率+dp)
  14. Broken pipe错误终极解释
  15. springboot(二十):使用spring-boot-admin对spring-boot服务进行监控
  16. Linux(CentOS7)压缩和解压缩war包、tar包、tar.gz包命令
  17. MVC4 5分页控件,支持Ajax AjaxOption支持
  18. gif软件(ShareX)
  19. POJ 1279 Art Gallery【半平面交】(求多边形的核)(模板题)
  20. react-native android 和ios 集成 jpush-react-native 激光推送

热门文章

  1. 读生产环境下go语言最佳实践有感
  2. 多重DES
  3. 【一天一道LeetCode】#63. Unique Paths II
  4. OC语言大总结(下)
  5. Linux进程实践(5) --守护进程
  6. Css的学习之旅-css的选择器(2)
  7. 高通平台手机开发之LCD
  8. python判断类型:想知道一个对象(实例或者变量)是什么类型,什么结构的
  9. MySql常用操作语句(1:启动、连接数据库及用户操作)
  10. jdk8中tomcat修改配置PermSize为MetaspaceSize