Django源码学习-9-TemplateView 通用视图
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
要深入理解class-based view, 那首先就要了解什么是Mixin。在编程中mixin是指为继承它的class提供额外的功能,但它自身却不能单独使用的类。在具有多继承能力的编程语言中, mixin可以为类增加额外功能或方法。
from django.views.generic import View
这个类是通用类的基类,其它类都是继承自这个类。
Django把基本的http请求和响应抽象出来,封装成各自的类,在使用过程中只需把各个基类聚合到一起使用,可以按照要求重写自己需要的方法,那么就把这些基类称为Mixin。在Django中比较基础的Mixin主要有几类:
其他的所有内置class-based view都是把以上几个基础类组合, 重写方法以达到预期的结果。比如DetailView这个类就组合了SingleObjectTemplateResponseMixin和BaseDetailView。
# views.py
from django.http import HttpResponse
from django.views.generic import View
class IndexView(View):
def get(self, request, *args, **kwargs):
return HttpResponse('Hello, World!')
# urls.py
from django.urls import path
from .views import IndexView
urlpatterns = [
path('index/', IndexView.as_view()),
]