Django使用裝飾器限制對視圖的訪問及實現(xiàn)原理
Django使用裝飾器限制對視圖的訪問
1.登錄鑒權(quán)裝飾器
除了可以在視圖處理中校驗用戶身份以及驗證用戶權(quán)限之外,Django還提供了便捷的裝飾器來完成這兩類校驗。@login_required
裝飾器用來驗證用戶是否登錄,只有登錄的用戶才可以訪問視圖,并獲得響應(yīng),否則可以重定向到登錄頁引導(dǎo)用戶登錄。@permission_required
裝飾器用來校驗用戶是否具有特定的權(quán)限,只有校驗通過的用戶才可以訪問視圖。下面介紹這兩個裝飾器的使用方法與實現(xiàn)原理
2.@login_required
使用@login_required
可以傳遞兩個參數(shù)
- login_url:匿名用戶訪問時重定向的URL,通常都會跳轉(zhuǎn)到登錄頁。默認(rèn)的登錄頁由settings.LOGIN_URL指定,需要設(shè)置為系統(tǒng)中定義的登錄頁URL
- redirect_field_name:默認(rèn)值為next,作為GET請求的參數(shù)。這個參數(shù)可以用于登錄后直接跳回到原先訪問的視圖
3.@permission_required
使用@permission_required
可以傳遞三個參數(shù):
- perm:需要校驗的權(quán)限,可以是列表、元組或字符串。如果是列表或元組則需要用戶同時擁有這些權(quán)限
- login_url:沒有指定權(quán)限的用戶訪問時重定向的URL,與@login_required中的login_url參數(shù)含義相同
- raise_exception:默認(rèn)為False,如果設(shè)置為True,則當(dāng)沒有權(quán)限的用戶訪問時將直接返回403
由于Python支持給函數(shù)配置多個裝飾器,所以,校驗登錄和校驗權(quán)限的裝飾器可以同時使用。例如:
這樣,訪問Topic詳情視圖時,不僅需要當(dāng)前用戶是已登錄用戶,還需要其同時擁有can_view_topic和add_topic兩個權(quán)限
到此這篇關(guān)于Django使用裝飾器限制對視圖的訪問的文章就介紹到這了,更多相關(guān)Django裝飾器限制視圖訪問內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬蟲爬取監(jiān)控教務(wù)系統(tǒng)的思路詳解
這篇文章主要介紹了python爬蟲監(jiān)控教務(wù)系統(tǒng),主要實現(xiàn)思路是對已有的成績進(jìn)行處理,變?yōu)閘ist集合,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01一篇文章弄懂Python關(guān)鍵字、標(biāo)識符和變量
這篇文章主要給大家介紹了關(guān)于Python關(guān)鍵字、標(biāo)識符和變量的相關(guān)資料,Python關(guān)鍵詞是Python保留的具有特定含義的特殊詞語,用于執(zhí)行某些操作,Python標(biāo)識符是用戶定義的名稱,而變量是計算機內(nèi)存中的一塊區(qū)域,存儲對象的內(nèi)存地址,以便引用對象的值,需要的朋友可以參考下2021-07-07pytorch基礎(chǔ)之損失函數(shù)與反向傳播詳解
損失函數(shù)(Loss?Function)用于衡量神經(jīng)網(wǎng)絡(luò)輸出與目標(biāo)值之間的誤差,指導(dǎo)網(wǎng)絡(luò)通過反向傳播優(yōu)化參數(shù),常見的損失函數(shù)包括均方誤差和交叉熵誤差,在訓(xùn)練過程中,通過不斷最小化損失函數(shù)值來調(diào)整網(wǎng)絡(luò)權(quán)重,以期達(dá)到輸出接近目標(biāo)值的效果2024-09-09Python腳本在Appium庫上對移動應(yīng)用實現(xiàn)自動化測試
這篇文章主要介紹了使用Python的Appium庫對移動應(yīng)用實現(xiàn)自動化測試的教程,屬于Python腳本的一個自動化應(yīng)用,需要的朋友可以參考下2015-04-04pandas pivot_table() 按日期分多列數(shù)據(jù)的方法
今天小編就為大家分享一篇pandas pivot_table() 按日期分多列數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python實現(xiàn)爬取天氣數(shù)據(jù)并可視化分析
這篇文章主要和大家分享一個用Python實現(xiàn)的小功能:獲取天氣數(shù)據(jù),進(jìn)行可視化分析,帶你直觀了解天氣情況!感興趣的小伙伴可以學(xué)習(xí)一下2022-02-02python+pytest接口自動化之日志管理模塊loguru簡介
python中有一個用起來非常簡便的第三方日志管理模塊--loguru,不僅可以避免logging的繁瑣配置,而且可以很簡單地避免在logging中多進(jìn)程多線程記錄日志時出現(xiàn)的問題,甚至還可以自定義控制臺輸出的日志顏色,接下來我們來學(xué)習(xí)怎么使用loguru模塊進(jìn)行日志管理2022-05-05