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 zsq1
def 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>')