




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第django中的auth模塊與admin后臺(tái)管理方法目錄1.auth模塊1.1auth模塊的常用方法1.2如何擴(kuò)展auth_user表2.admin后臺(tái)管理2.1admin后臺(tái)管理的準(zhǔn)備工作2.2為admin后臺(tái)設(shè)置樣式和增加數(shù)據(jù)
1.auth模塊
auth模塊是對(duì)登錄認(rèn)證方法的一種封裝,本身就是一個(gè)對(duì)象,可以獲取用戶的詳細(xì)信息,有了auth模塊可以驗(yàn)證登錄信息是否存在數(shù)據(jù)庫中,還可以檢驗(yàn)用戶是否已經(jīng)登錄,校驗(yàn)密碼等。
在創(chuàng)建完django項(xiàng)目之后,執(zhí)行數(shù)據(jù)庫遷移之后,數(shù)據(jù)庫里會(huì)增加很多新表,其中有一張名為auth_user的表,當(dāng)訪問django自帶的路由admin的時(shí)候,需要輸入用戶名和密碼,其參照的就是auth_user表
使用python3manage.pycrataesupperuser可以創(chuàng)建超級(jí)管理員用戶,同時(shí)在auth_user表里面產(chǎn)生一條超級(jí)用戶數(shù)據(jù)
1.1auth模塊的常用方法
fromdjango.contribimportauth
#1.比對(duì)用戶名和密碼是否正確
user_obj=auth.authenticate(request,username=username,password=password)
#括號(hào)內(nèi)必須同時(shí)傳入用戶名和密碼
print(user_obj)#返回的是用戶對(duì)象jason數(shù)據(jù)不符合則返回None
print(user_obj.username)#jason
print(user_obj.password)#結(jié)果為密文
#2.保存用戶狀態(tài)
auth.login(request,user_obj)#類似于request.session[key]=user_obj
#主要執(zhí)行了該方法你就可以在任何地方通過request.user獲取到當(dāng)前登陸的用戶對(duì)象
#3.判斷當(dāng)前用戶是否登陸
request.user.is_authenticated()
登錄了返回true,否則返回false
#4.獲取當(dāng)前登陸用戶對(duì)象
user_obj=request.user
#5.校驗(yàn)用戶是否登陸的裝飾器
fromdjango.contrib.auth.decoratorsimportlogin_required
#局部配置
@login_required(login_url='/login/')
在需要裝飾的函數(shù)上添加上述裝飾器,括號(hào)里表示未登錄則跳轉(zhuǎn)到指定url
#在setting.py里進(jìn)行全局配置
LOGIN_URL='/login/'
1.如果局部和全局都有該聽誰的
局部全局
2.局部和全局哪個(gè)好呢
全局的好處在于無需重復(fù)寫代碼但是跳轉(zhuǎn)的頁面卻很單一
局部的好處在于不同的視圖函數(shù)在用戶沒有登陸的情況下可以跳轉(zhuǎn)到不同的頁面
#6.比對(duì)原密碼
is_right=request.user.check_password(old_password)
返回的是true或者false
#7.修改密碼
request.user.set_password(new_password)#僅僅是在修改對(duì)象的屬性
request.user.save()#這一步才是真正的操作數(shù)據(jù)庫
#8.注銷
auth.logout(request)
#9.注冊(cè)
#操作auth_user表寫入數(shù)據(jù)
fromdjango.contrib.auth.modelsimportUser#導(dǎo)入模塊
User.objects.create(username=username,password=password)#寫入數(shù)據(jù)不能用create密碼沒有加密處理
#創(chuàng)建普通用戶
User.objects.create_user(username=username,password=password)
#創(chuàng)建超級(jí)用戶(了解):使用代碼創(chuàng)建超級(jí)用戶郵箱是必填的而用命令創(chuàng)建則可以不填
User.objects.create_superuser(username=username,email='123@',password=password)
1.2如何擴(kuò)展auth_user表
fromdjango.dbimportmodels
fromdjango.contrib.auth.modelsimportUser,AbstractUser
#第一種方法:一對(duì)一關(guān)系(利用外鍵)不推薦
#classUserDetail(models.Model):
#phone=models.BigIntegerField()
#user=models.OneToOneField(to='User')
#第二種:面向?qū)ο蟮睦^承
classUserInfo(AbstractUser):
如果繼承了AbstractUser
那么在執(zhí)行數(shù)據(jù)庫遷移命令的時(shí)候auth_user表就不會(huì)再創(chuàng)建出來了
而UserInfo表中會(huì)出現(xiàn)auth_user所有的字段外加自己擴(kuò)展的字段
這么做的好處在于你能夠直接點(diǎn)擊你自己的表更加快速的完成操作及擴(kuò)展
1.在繼承之前沒有執(zhí)行過數(shù)據(jù)庫遷移命令
auth_user沒有被創(chuàng)建,如果當(dāng)前庫已經(jīng)創(chuàng)建了那么你就重新?lián)Q一個(gè)數(shù)據(jù)庫
2.繼承的類里面不要覆蓋AbstractUser里面的字段名
表里面有的字段都不要?jiǎng)?,只擴(kuò)展額外字段即可
3.需要在配置文件中告訴django你要用UserInfo替代auth_user(******)
AUTH_USER_MODEL='app01.UserInfo'
'應(yīng)用名.表名'
phone=models.BigIntegerField()#需要添加的新字段
你如果自己寫表替代了auth_user,那么auth模塊的功能還是照常使用,參考的表頁由原來的auth_user變成了UserInfo!
2.admin后臺(tái)管理
django的admin管理后臺(tái)提供了比較完善的管理數(shù)據(jù)庫的接口
2.1admin后臺(tái)管理的準(zhǔn)備工作
1.創(chuàng)建超級(jí)用戶:pythonmanage.pycreatesuperuser
2.進(jìn)入/admin--使用超級(jí)用戶賬號(hào)登錄進(jìn)行用戶的增加或者組的增加
3.在app中的admin.py中導(dǎo)入注冊(cè)自己要管理的模型類如:from.modelsimportBook
4.admin.site.register(Book)#注冊(cè)語法,注冊(cè)之后admin后臺(tái)就可以對(duì)該表進(jìn)行管理?。?/p>
2.2為admin后臺(tái)設(shè)置樣式和增加數(shù)據(jù)
1.修改admin后臺(tái)的表名
在該表對(duì)應(yīng)的models類里面添加一個(gè)Meta類:
classMeta:
verbose_name_plural='用戶表'#指定該表在admin后臺(tái)的名字為:用戶表
2.在admin中為具體表增加數(shù)據(jù)
3.null=Tru
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市軌道交通站點(diǎn)周邊交通組織調(diào)整對(duì)城市交通運(yùn)行安全風(fēng)險(xiǎn)防控研究報(bào)告
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)數(shù)據(jù)備份與恢復(fù)策略在智能倉儲(chǔ)物流自動(dòng)化中的應(yīng)用報(bào)告
- 2025年綠色供應(yīng)鏈管理在環(huán)?;瘖y品行業(yè)的創(chuàng)新應(yīng)用報(bào)告
- 展覽館運(yùn)營管理與升級(jí)改造合同
- 城市綜合體地下室改造及防水保溫一體化工程合同
- 工業(yè)級(jí)材料沖擊試驗(yàn)機(jī)租賃與實(shí)驗(yàn)操作指導(dǎo)協(xié)議
- 空氣質(zhì)量監(jiān)測數(shù)據(jù)補(bǔ)充協(xié)議
- 挪威電商平臺(tái)入駐及北歐市場拓展服務(wù)協(xié)議
- 車聯(lián)網(wǎng)技術(shù)審核補(bǔ)充協(xié)議
- 企業(yè)高層情感賬戶管理與保密合同模板
- 區(qū)塊鏈賦能金融提升交易透明度
- wps表格考試試題及答案
- 2025年北京市西城區(qū)高三二模語文試卷(含答案)
- 2025年吉林省四平市梨樹縣中考二模歷史試題(含答案)
- 生物柴油項(xiàng)目申報(bào)材料范文模板 (一)
- 豬保價(jià)合同協(xié)議
- 玉石代理銷售合同協(xié)議
- (二模)2025年汕頭市高三普通高考第二次模擬考試英語試卷(含答案)
- 山東2025年山東省公共衛(wèi)生臨床中心招聘博士人才60筆試歷年參考題庫附帶答案詳解
- 2024年臺(tái)州市委統(tǒng)戰(zhàn)部下屬事業(yè)單位選聘筆試真題
- 山西太原事業(yè)單位考試《行測》模擬題帶答案2024年
評(píng)論
0/150
提交評(píng)論