• Django基本视图


    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。

     

     

  • 相关阅读:
    access生成sql脚本,通过VBA调用ADOX
    virtualbox 使用USB引导启动安装系统
    atom 调用g++编译cpp文件
    VPython 三维显示 —— hello word
    sql高级篇(一)
    sql基础篇
    struts2中的<s:select>默认选项
    关于SVN更新注意
    mysql中的substr()函数
    mysql中exists的用法介绍
  • 原文地址:https://www.cnblogs.com/baishoujing/p/7227992.html
Copyright © 2020-2023  润新知