1,基础概念
1.1 CBV 概念
Django 视图是一个可调用对象,该对象接受一个 request 对象作为参数,同时以一个 response对象作为返回对象。这种调用对象可以是函数,而Django环境提供了某些特殊的类,使我们能够使用类作为一个可调用对象,或者做一个视图,这种做法就是基于类视图(class based views CBV )的概念。
Django的url是将一个请求分配给可调用的函数的,而不是一个class。针对这个问题,CBV提供了一个名称为as_view的类方法来达到地址路由的目的。
相关于使用基于函数的视图而言,CBV具有如下两个优点:
1)我们针对不同的HTTP方法(如GET, POST, 等等)可以用不同的函数处理,而不是通过很多if判断,提高代码可读性;
2)利用面向对象的一些技术手段(例如,继承)来构建相关代码,提高了代码的复用性
1.2 Mixin
Python使用的一种技术机制,一个类可以继承多个类,同样也可以引用多个混入(Mixin)类,混入类与引用混入的类之间是一种引用关系,两者均可独立存在。