CBV如何添加装饰器?

一:CBV如何添加装饰器

1.CBV中django不建议直接给类的方法加装饰器
CBV中django不建议你直接给类的方法加装饰器
无论该装饰器能都正常给你 都不建议直接加
2.CBC添加装饰器的三种方法
方式1:指名道姓
@method_decorator(login_auth)  

方式2(可以添加多个针对不同的方法加不同的装饰器)
@method_decorator(login_auth,name='get')  
@method_decorator(login_auth,name='post')

方式3:它会直接作用于当前类里面的所有的方法 下面的方法都会有login_auth
@method_decorator(login_auth)
def dispatch(self, request, *args, **kwargs):  
        return super().dispatch(request,*args,**kwargs)
    
# 需要导入模块    
from django.utils.decorators import method_decorator    
3.CBV添加装饰器实战
from django.views import View
from django.utils.decorators import method_decorator


# @method_decorator(login_auth,name='get')  # 方式2(可以添加多个针对不同的方法加不同的装饰器)
# @method_decorator(login_auth,name='post')
class MyLogin(View):
    @method_decorator(login_auth)  # 方式3:它会直接作用于当前类里面的所有的方法 下面的方法都会有login_auth
    def dispatch(self, request, *args, **kwargs):  
        return super().dispatch(request,*args,**kwargs)
    # @method_decorator(login_auth)  # 方式1:指名道姓
    def get(self,request):
        return HttpResponse("get请求")

    def post(self,request):
        return HttpResponse('post请求')
posted @ 2022-03-15 14:43  AlexEvans  阅读(48)  评论(0编辑  收藏  举报