1. 程式人生 > 其它 >CBV如何新增裝飾器?

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請求')