網站首頁 編程語言 正文
Django auth 應用模塊
在設計開發任何一個站點的時候都需要有“用戶”的概念,從用戶的注冊、登陸、退出或者注銷,到用戶的瀏覽、訂閱等,這些都需要用戶管理系統來實現。如果沒有時間積累和相關開發工作經驗,設計一個優秀的用戶系統是很困難的。那么 Django 又是如何解決這個問題的呢?
一,Django的auth模塊
Django 作為功能完善的 Web 框架充分考慮到這一點,它提供的 auth 模塊能夠快速的實現用戶模塊的基本功能。
新建項目后,Django 就把 auth 模塊的所有功能提供給了開發者使用,開發者可以調用相應的接口,實現不同的功能需求。auth 模塊定義了一張名叫 auth_user 的數據表,該表是 auth 模塊的內建用戶表,開發者調用 auth 模塊的相應接口生成此表,auth_user 表的字段以及字段類型,如下所示。
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| password | varchar(128) | NO | | NULL | |
| last_login | datetime(6) | YES | | NULL | |
| is_superuser | tinyint(1) | NO | | NULL | |
| username | varchar(150) | NO | UNI | NULL | |
| first_name | varchar(30) | NO | | NULL | |
| last_name | varchar(150) | NO | | NULL | |
| email | varchar(254) | NO | | NULL | |
| is_staff | tinyint(1) | NO | | NULL | |
| is_active | tinyint(1) | NO | | NULL | |
| date_joined | datetime(6) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
11 rows in set (0.02 sec)#auth_user表
現在新建一張 auth_user 用戶表,并為此表添加一個新用戶 user。首先用如下方式引入 auth模塊的 User 方法:
from django.contrib.auth.models import User
然后通過下面方法創建新用戶 user ,如下所示:
user=User.objects.create_user(username='JB51',password='123456',email='123456@qq.com')
save()#調用該方法保存數據
同時也可以使用如下方法修改密碼:
user.set_password(password='12345abc')#會對原密碼進行修改
根據具體的業務需求,還可以對表的字段進行增加、刪除、更改。
當涉及到用戶概念的時候也會產生用戶權限問題,比如,如何劃分普通用戶和超級管理員用戶?針對權限問題,Django 也提供了解決問題的方案,auth 模塊提供了標準的權限管理系統,它配合 Admin 后臺可以快速建立網站管理系統。
auth 模塊提供了認證用戶功能,可以用下面方式引入后使用:
from django.contrib.auth import authenticate
然后使用關鍵字傳參的方法來傳遞用戶憑證,從而達到用戶認證的目的:
user = authenticate(username='CSDN',password='12345abc')
二,auth應用模塊的其他作用
auth 模塊還實現一些其它的功能,比如:
- 用戶的登錄(login)、退出(logout)功能,封裝在 django.contrib.auth 里;
- 用戶權限系統封裝在 django.contrib.auth.models.Permission 中 ,可以對用戶的權限進行增加、修改、刪除;
- 用戶組可以通過 from django.contrib.auth.models.Group 導入后來創建組或者刪除組。
列舉一些簡單應用方法:
user.user_permission.add(permission)#給某個用戶權限的添加權限
group = Group.objects.create(name=group_name)#添加新的用戶組
group.save() #保存新建好的用戶組
group.delete()#刪除用戶組
三,auth模塊總結
auth 模塊提供的主要功能總結如下:
- 實現并維護了用戶與用戶組的增加、刪除、更改功能;
- 實現了用戶權限與用戶組權限的增加、刪除、更改;
- 實現了可以自定義用戶權限與用戶組權限功能。
除了以上功能外,Django auth 模塊還提供了權限驗證等功能以及一些常用的方法。
auth 模塊幫助開發人員提高了工作效率,因為每個 Web 站點的權限管理模塊或者用戶管理模塊基本都是相同的邏輯,Django 的 auth 模塊使開發者們不必在為一些重復性的邏輯進行構建。在實際開發工作中,用戶模塊與權限管理模塊需要與實際相結合,開發者可以根據業務需求自定義或者重寫相應方法,以達到和實際業務相契合的目的。
原文鏈接:https://blog.csdn.net/m0_62617719/article/details/127808920
相關推薦
- 2022-03-27 Redis?使用?List?實現消息隊列的優缺點_Redis
- 2022-06-20 .NET?Core企業微信網頁授權登錄的實現_實用技巧
- 2022-06-13 Python數據類型及常用方法_python
- 2022-10-11 XGBoost與GBDT和LGBM區別
- 2022-04-23 排序會了遞歸,不學非遞歸太可惜了
- 2022-02-18 ImportError:can't import name 'Flask'
- 2022-12-22 Nginx配置之main?events塊使用示例詳解_nginx
- 2022-09-08 go語言中的協程詳解_Golang
- 最近更新
-
- 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同步修改后的遠程分支