給CBV加裝飾器

2022-04-10 20:57:56 字數 1320 閱讀 8785

#

裝飾器def

在django中給cbv加裝飾器需要匯入模組

from django.utils.decoreation import

method_decorator

#

先要有個類作位**主頁,必須登入才能訪問

#cbv

class

home(view):

defget(self,request):

pass

defpost(self,request):

pass

兩種加裝飾器的方法

類名上加裝飾器

@method_decorator(login_auth,name='

get') #

加在類上面的話,必須通過name指定給誰加

class

home(view):

defget(self,request):

pass

defpost(self,request):

pass

#方法名上加,不要用原生裝飾器,用的話只能改引數,那樣不通用

class

home(view):

@method_decorator(login_auth)

defget(self,request):

pass

defpost(self,request):

pass

CBV加裝飾器

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

django CBV加裝飾器

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

python中裝飾器之疊加裝飾器(二)

當乙個函式疊加了多個裝飾器後,程式會如何執行呢?疊加裝飾器 在同乙個被裝飾物件中,新增多個裝飾器,並執行。裝飾1 裝飾2 裝飾3 def被裝飾物件 pass注意 裝飾器在呼叫被裝飾物件時才會執行新增的功能。裝飾的順序 由下到上 被包裹 執行的順序 由上倒下 貫穿 def def inner1 arg...