日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Django?auth?應用模塊詳解_python

作者:梁辰興 ? 更新時間: 2022-12-11 編程語言

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

欄目分類
最近更新