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...