类视图:(使用 dispatch 方法根据请求方式进行路由的分发)
Django支持把类当做视图,使用类里的方法来应对不同的请求方式,
- 代码可读性好
- 类视图相对于函数视图有更高的复用性, 如果其他地方需要用到某个类视图的某个特定逻辑,直接继承该类视图即可
类视图添加装饰器:
1、在URL配置中装饰
2、使用 method_decorator(自定义装饰器) 对类视图中的请求方法添加装饰行为,对
dispatch 方法进行装饰就可以为所有方法添加装饰行为,method_decorator装饰器还
支持使用name参数指明被装饰的方法,name='函数名'
3、构造扩展类,在类视图中继承扩展类,为所有方法添加装饰行为
class MyDecoratorMixin(object):
@classmethod
def as_view(cls, *args, **kwargs):
view = super().as_view(*args, **kwargs)
view = my_decorator(view)
return view