網站首頁 編程語言 正文
Django使用裝飾器限制對視圖的訪問
1.登錄鑒權裝飾器
除了可以在視圖處理中校驗用戶身份以及驗證用戶權限之外,Django還提供了便捷的裝飾器來完成這兩類校驗。@login_required
裝飾器用來驗證用戶是否登錄,只有登錄的用戶才可以訪問視圖,并獲得響應,否則可以重定向到登錄頁引導用戶登錄。@permission_required
裝飾器用來校驗用戶是否具有特定的權限,只有校驗通過的用戶才可以訪問視圖。下面介紹這兩個裝飾器的使用方法與實現原理
2.@login_required
使用@login_required
可以傳遞兩個參數
- login_url:匿名用戶訪問時重定向的URL,通常都會跳轉到登錄頁。默認的登錄頁由settings.LOGIN_URL指定,需要設置為系統中定義的登錄頁URL
- redirect_field_name:默認值為next,作為GET請求的參數。這個參數可以用于登錄后直接跳回到原先訪問的視圖
3.@permission_required
使用@permission_required
可以傳遞三個參數:
- perm:需要校驗的權限,可以是列表、元組或字符串。如果是列表或元組則需要用戶同時擁有這些權限
- login_url:沒有指定權限的用戶訪問時重定向的URL,與@login_required中的login_url參數含義相同
- raise_exception:默認為False,如果設置為True,則當沒有權限的用戶訪問時將直接返回403
由于Python支持給函數配置多個裝飾器,所以,校驗登錄和校驗權限的裝飾器可以同時使用。例如:
這樣,訪問Topic詳情視圖時,不僅需要當前用戶是已登錄用戶,還需要其同時擁有can_view_topic和add_topic兩個權限
原文鏈接:https://blog.csdn.net/Gherbirthday0916/article/details/127305212
相關推薦
- 2021-11-28 深入講解Socket原理_C 語言
- 2022-07-26 Python的基本數據類型
- 2022-01-30 判斷element Ui 表格(el-table)中復選框中的選中狀態
- 2021-12-13 linux系統AutoFs自動掛載服務安裝配置_Linux
- 2023-02-10 docker-compose實現容器任務編排的方法步驟_docker
- 2022-08-04 GoFrame框架gcache的緩存控制淘汰策略實踐示例_Golang
- 2022-06-26 Python使用Tkinter?GUI實現輸入驗證功能_python
- 2022-04-11 git項目初次push提示error: failed to push some refs to ht
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支