Django auth 應(yīng)用模塊詳解
Django auth 應(yīng)用模塊
在設(shè)計開發(fā)任何一個站點的時候都需要有“用戶”的概念,從用戶的注冊、登陸、退出或者注銷,到用戶的瀏覽、訂閱等,這些都需要用戶管理系統(tǒng)來實現(xiàn)。如果沒有時間積累和相關(guān)開發(fā)工作經(jīng)驗,設(shè)計一個優(yōu)秀的用戶系統(tǒng)是很困難的。那么 Django 又是如何解決這個問題的呢?
一,Django的auth模塊
Django 作為功能完善的 Web 框架充分考慮到這一點,它提供的 auth 模塊能夠快速的實現(xiàn)用戶模塊的基本功能。
新建項目后,Django 就把 auth 模塊的所有功能提供給了開發(fā)者使用,開發(fā)者可以調(diào)用相應(yīng)的接口,實現(xiàn)不同的功能需求。auth 模塊定義了一張名叫 auth_user 的數(shù)據(jù)表,該表是 auth 模塊的內(nèi)建用戶表,開發(fā)者調(diào)用 auth 模塊的相應(yīng)接口生成此表,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表
現(xiàn)在新建一張 auth_user 用戶表,并為此表添加一個新用戶 user。首先用如下方式引入 auth模塊的 User 方法:
from django.contrib.auth.models import User
然后通過下面方法創(chuàng)建新用戶 user ,如下所示:
user=User.objects.create_user(username='JB51',password='123456',email='123456@qq.com') save()#調(diào)用該方法保存數(shù)據(jù)
同時也可以使用如下方法修改密碼:
user.set_password(password='12345abc')#會對原密碼進行修改
根據(jù)具體的業(yè)務(wù)需求,還可以對表的字段進行增加、刪除、更改。
當(dāng)涉及到用戶概念的時候也會產(chǎn)生用戶權(quán)限問題,比如,如何劃分普通用戶和超級管理員用戶?針對權(quán)限問題,Django 也提供了解決問題的方案,auth 模塊提供了標(biāo)準(zhǔn)的權(quán)限管理系統(tǒng),它配合 Admin 后臺可以快速建立網(wǎng)站管理系統(tǒng)。
auth 模塊提供了認證用戶功能,可以用下面方式引入后使用:
from django.contrib.auth import authenticate
然后使用關(guān)鍵字傳參的方法來傳遞用戶憑證,從而達到用戶認證的目的:
user = authenticate(username='CSDN',password='12345abc')
二,auth應(yīng)用模塊的其他作用
auth 模塊還實現(xiàn)一些其它的功能,比如:
- 用戶的登錄(login)、退出(logout)功能,封裝在 django.contrib.auth 里;
- 用戶權(quán)限系統(tǒng)封裝在 django.contrib.auth.models.Permission 中 ,可以對用戶的權(quán)限進行增加、修改、刪除;
- 用戶組可以通過 from django.contrib.auth.models.Group 導(dǎo)入后來創(chuàng)建組或者刪除組。
列舉一些簡單應(yīng)用方法:
user.user_permission.add(permission)#給某個用戶權(quán)限的添加權(quán)限 group = Group.objects.create(name=group_name)#添加新的用戶組 group.save() #保存新建好的用戶組 group.delete()#刪除用戶組
三,auth模塊總結(jié)
auth 模塊提供的主要功能總結(jié)如下:
- 實現(xiàn)并維護了用戶與用戶組的增加、刪除、更改功能;
- 實現(xiàn)了用戶權(quán)限與用戶組權(quán)限的增加、刪除、更改;
- 實現(xiàn)了可以自定義用戶權(quán)限與用戶組權(quán)限功能。
除了以上功能外,Django auth 模塊還提供了權(quán)限驗證等功能以及一些常用的方法。
auth 模塊幫助開發(fā)人員提高了工作效率,因為每個 Web 站點的權(quán)限管理模塊或者用戶管理模塊基本都是相同的邏輯,Django 的 auth 模塊使開發(fā)者們不必在為一些重復(fù)性的邏輯進行構(gòu)建。在實際開發(fā)工作中,用戶模塊與權(quán)限管理模塊需要與實際相結(jié)合,開發(fā)者可以根據(jù)業(yè)務(wù)需求自定義或者重寫相應(yīng)方法,以達到和實際業(yè)務(wù)相契合的目的。
到此這篇關(guān)于Django auth 應(yīng)用模塊的文章就介紹到這了,更多相關(guān)Django auth 應(yīng)用模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python的Django框架中Manager方法的使用
這篇文章主要介紹了Python的Django框架中Manager方法的使用,包括修改初始Manager QuerySets和增加額外的Manager方法等操作,需要的朋友可以參考下2015-07-07Python實現(xiàn)Excel表格轉(zhuǎn)HTML
Excel工作簿是常用的表格格式,廣泛用于組織、分析及展示數(shù)據(jù),這篇文章主要為大家詳細介紹了如何使用Python將Excel工作簿或工作表轉(zhuǎn)換為HTML文件,需要的可以參考下2024-03-03使用Python連接MySQL數(shù)據(jù)庫進行編程的步驟詳解
Python數(shù)據(jù)庫編程可以使用多種模塊與API,例如SQLite、MySQL、PostgreSQL等,本教程將重點介紹使用Python連接MySQL數(shù)據(jù)庫進行編程,需要的朋友可以參考下2023-06-06Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法
今天小編就為大家分享一篇Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Flask框架學(xué)習(xí)筆記之表單基礎(chǔ)介紹與表單提交方式
這篇文章主要介紹了Flask框架學(xué)習(xí)筆記之表單基礎(chǔ)介紹與表單提交方式,結(jié)合實例形式分析了flask框架中表單的基本功能、定義、用法及表單提交的get、post方式使用技巧,需要的朋友可以參考下2019-08-08