1.1 视图混合介绍

  1MixinView的职能区分

      1. Mixin提供数据,View提供模板和渲染,所以一般get_context_data在Mixin中,get(),post(),head()在View中
      2. Mixin和View不是能随意组合的,必须要注意他们之间的方法的解析顺序,也就是MRO

  2ContextMixin

      1. 直接就是一个get_context_data,用于返回context数据。

  3View

      1. 会调用所有的get方法,post方法,具体是这些['get', 'post', 'put', 'delete', 'head', 'options', 'trace']
      2. View中是没有返回一个response的,所以光继承View的话,必须要重写get等,以返回一个response。

  4TemplateResponseMixin

      1. 故名思议,这个Mixin会加入Template的基本信息,也就是template的名字

      2. 但是光有Template信息是没有用的,因为她没有跟View想联系起来,如果想要跟View联系起来的话必须想
          办法把render_to_response插进MRO的调用顺序,而且TemplateResponseMixin是没有context的信息的

      3. 有一个可以借鉴的方法就是TemplateView的做法, Mixin和View把原来的试图函数中的三个东西分开了
        模板(TemplateResponseMixin),
        上下文数据(ContextMixin),
        负责将这些联系起来的一个东西(View)

  5TemplateView

      1. TemplateView就继承自TemplateResponseMixin,ContextMixin以及View,所以它的调用思路就很明确了
      2. 在其中定义一个get方法,然后通过get方法去将上面的三个东西联系在一起.
      3. 我们可以看一下TemplateView的源代码

1.2 TemplateView 基本使用

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^home/', views.HomePageView.as_view(),name='home'),
]
urls.py

相关文章:

  • 2021-11-02
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
猜你喜欢
  • 2021-09-13
  • 2021-09-10
  • 2021-12-05
  • 2020-05-29
  • 2022-12-23
  • 2021-08-04
  • 2021-11-20
相关资源
相似解决方案