Django的FBV增加裝飾器

2022-03-01 05:37:37 字數 968 閱讀 9963

method_decorator方法

在cbv的方式中,單獨給某個方法通過裝飾器來免除是無效的,需要加到dispatch函式上面

# fbv

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

def test(request):

pass

# 在cbv的方式中,單獨給某個方法通過裝飾器來免除是無效的,需要加到dispatch函式上面

# 方法1

from django.views.decorators.csrf import csrf_exempt

from django.utils.decorators import method_decorator

class test1(apiview):

@method_decorator(csrf_exempt)

def dispatch(self, request, *args, **kwargs):

ret = super(test1,self).dispatch(request, *args, **kwargs)

return ret

# 方法2

@method_decorator(csrf_exempt,name='dispatch')

class test2(apiview):

pass

單獨想用csrf的方法

# 1.去掉setting中csrf中介軟體

from django.views.decorators.csrf import csrf_protect

@csrf_protect

def test(request):

pass

django CBV加裝飾器

cbv class base view 基於session實現的裝飾器 登入了就給session設定值 生成隨機序列 然後存入資料庫,並將一串隨機序列鍵值對返回給瀏覽器端,若未登入則跳轉到登入頁面。def login auth func wraps func def inner request,ar...

CBV加裝飾器

我們知道在函式上如何加裝飾器,那麼在類上如何加裝飾器呢?下面寫乙個登入校驗示例 匯入 from django.utils.decorators import method decorator 裝飾器 def auth func def inner request,args,kwargs 登入校驗 i...

給CBV加裝飾器

裝飾器def 在django中給cbv加裝飾器需要匯入模組 from django.utils.decoreation import method decorator 先要有個類作位 主頁,必須登入才能訪問 cbv class home view defget self,request pass d...