CBV 装饰器
# django的类中使用装饰器需要引入 -- 第一种方法from django.utils.decorators import method_decorator # Create your views here.def zsq(func): # 定义一个装饰器 def zsq1(*args,**kwargs): print('请求前') res = func(*args,**kwargs) print('请求后') return res return zsq1def base(request): return HttpResponse('<h1>test02 index!</h1>')class LoginView(View): @method_decorator(zsq) # 1. 调用装饰器(老版本支持) # @zsq # 2. 直接调用装饰器 def get(self,request): print('get') return render(request,'login.html') @method_decorator(zsq) def post(self,request): print('post') username = request.POST.get('username') password = request.POST.get('password') return HttpResponse(username+password)

FBV 装饰器 (func based view)
def zsq(func): # 定义一个装饰器 def zsq1(*args,**kwargs): print('请求前') res = func(*args,**kwargs) print('请求后') return res return zsq1@zsq # 直接调装饰器def base(request): print('fbv -- get ') return HttpResponse('<h1>test02 index!</h1>')
