最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django中的auth模塊與admin后臺管理方法

 更新時(shí)間:2022年09月19日 08:33:15   作者:等日落  
這篇文章主要介紹了django中的auth模塊與admin后臺管理方法,包括auth模塊的常用方法及如何擴(kuò)展auth_user表,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

1. auth模塊

auth模塊是對登錄認(rèn)證方法的一種封裝,本身就是一個(gè)對象,可以獲取用戶的詳細(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表

使用python3 manage.py crataesupperuser 可以創(chuàng)建超級管理員用戶,同時(shí)在auth_user表里面產(chǎn)生一條超級用戶數(shù)據(jù)

1.1 auth模塊的常用方法

from django.contrib import auth
# 1.比對用戶名和密碼是否正確
	user_obj = auth.authenticate(request,username=username,password=password)
	# 括號內(nèi)必須同時(shí)傳入用戶名和密碼
	print(user_obj)  # 返回的是用戶對象  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)前登陸的用戶對象
	
# 3.判斷當(dāng)前用戶是否登陸
	request.user.is_authenticated()
	登錄了返回true,否則返回false
	
# 4.獲取當(dāng)前登陸用戶對象
	user_obj=request.user
	
# 5.校驗(yàn)用戶是否登陸的裝飾器
	from django.contrib.auth.decorators import login_required
	# 局部配置
	@login_required(login_url='/login/')
	在需要裝飾的函數(shù)上添加上述裝飾器,括號里表示未登錄則跳轉(zhuǎn)到指定url
	# 在setting.py里進(jìn)行全局配置
	LOGIN_URL = '/login/'
		1.如果局部和全局都有 該聽誰的?
		局部 > 全局
		2.局部和全局哪個(gè)好呢?
		全局的好處在于無需重復(fù)寫代碼 但是跳轉(zhuǎn)的頁面卻很單一
		局部的好處在于不同的視圖函數(shù)在用戶沒有登陸的情況下可以跳轉(zhuǎn)到不同的頁面
		
# 6.比對原密碼
	is_right=request.user.check_password(old_password)
	返回的是true或者false

# 7.修改密碼
	request.user.set_password(new_password)  # 僅僅是在修改對象的屬性
	request.user.save()  # 這一步才是真正的操作數(shù)據(jù)庫

# 8.注銷
	auth.logout(request)

# 9.注冊
	# 操作auth_user表寫入數(shù)據(jù)
	from django.contrib.auth.models import User #導(dǎo)入模塊
	User.objects.create(username=username,password=password)  # 寫入數(shù)據(jù)  不能用create 密碼沒有加密處理
	# 創(chuàng)建普通用戶
	User.objects.create_user(username=username,password=password)
	# 創(chuàng)建超級用戶(了解):使用代碼創(chuàng)建超級用戶 郵箱是必填的 而用命令創(chuàng)建則可以不填
	User.objects.create_superuser(username=username,email='123@qq.com',password=password)

1.2 如何擴(kuò)展auth_user表

from django.db import models
from django.contrib.auth.models import User,AbstractUser

# 第一種方法:一對一關(guān)系(利用外鍵)  不推薦
# class UserDetail(models.Model):
#     phone = models.BigIntegerField()
#     user = models.OneToOneField(to='User')

# 第二種:面向?qū)ο蟮睦^承
class UserInfo(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后臺管理

django的admin管理后臺提供了比較完善的管理數(shù)據(jù)庫的接口

2.1 admin后臺管理的準(zhǔn)備工作

1.創(chuàng)建超級用戶:python manage.py createsuperuser
2.進(jìn)入127.0.0.1/admin --使用超級用戶賬號登錄進(jìn)行用戶的增加或者組的增加
3.在app中的admin.py中導(dǎo)入注冊自己要管理的模型類如:from . models import Book
4.admin.site.register(Book) # 注冊語法,注冊之后admin后臺就可以對該表進(jìn)行管理?。?

2.2 為admin后臺設(shè)置樣式和增加數(shù)據(jù)

1.修改admin后臺的表名

在該表對應(yīng)的models類里面添加一個(gè)Meta類:
    class Meta:
        verbose_name_plural = '用戶表' #指定該表在admin后臺的名字為:用戶表

2.在admin中為具體表增加數(shù)據(jù)

3.null=True,blank=True的區(qū)別

phone = models.BigIntegerField(verbose_name='手機(jī)號',null=True,blank=True)
    """
    null=True:是告訴數(shù)據(jù)庫該字段可以為空,admin后臺默認(rèn)還是不允許為空
    blank=True:告訴admin后臺該字段可以為空
    """

到此這篇關(guān)于django中的auth模塊與admin后臺管理的文章就介紹到這了,更多相關(guān)django admin后臺管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pycharm new project變成灰色的解決方法

    pycharm new project變成灰色的解決方法

    今天小編就為大家分享一篇pycharm new project變成灰色的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python從sqlite讀取并顯示數(shù)據(jù)的方法

    python從sqlite讀取并顯示數(shù)據(jù)的方法

    這篇文章主要介紹了python從sqlite讀取并顯示數(shù)據(jù)的方法,涉及Python操作SQLite數(shù)據(jù)庫的讀取及顯示相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python實(shí)現(xiàn)簡單的用戶交互方法詳解

    Python實(shí)現(xiàn)簡單的用戶交互方法詳解

    這篇文章給大家分享了關(guān)于Python實(shí)現(xiàn)簡單的用戶交互的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-09-09
  • pytorch?ssim計(jì)算詳細(xì)代碼例子

    pytorch?ssim計(jì)算詳細(xì)代碼例子

    這篇文章主要給大家介紹了關(guān)于pytorch?ssim計(jì)算的相關(guān)資料,結(jié)構(gòu)相似性(SSIM)是一種測量兩幅圖像的相似度的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 零基礎(chǔ)使用Python讀寫處理Excel表格的方法

    零基礎(chǔ)使用Python讀寫處理Excel表格的方法

    這篇文章主要介紹了Python讀寫處理Excel表格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 如何在ubuntu中切換使用不同版本的python

    如何在ubuntu中切換使用不同版本的python

    在ubuntu環(huán)境下進(jìn)行嵌入式開發(fā),我們在進(jìn)行不同的項(xiàng)目開發(fā)時(shí),可能會(huì)遇到python環(huán)境不統(tǒng)一的情況,下面這篇文章主要給大家介紹了關(guān)于如何在ubuntu中切換使用不同版本的python的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Django admin禁用編輯鏈接和添加刪除操作詳解

    Django admin禁用編輯鏈接和添加刪除操作詳解

    今天小編就為大家分享一篇Django admin禁用編輯鏈接和添加刪除操作詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn)

    python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn)

    這篇文章主要介紹了python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能

    Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能

    無論是Linux系統(tǒng)還是Windows系統(tǒng)都有基于文件名實(shí)現(xiàn)過濾、查找的功能。但是如果想要查找一些關(guān)于某些文件指定內(nèi)容的文件,好像它們明面上沒有這樣的功能了。這個(gè)時(shí)候就可以通過 Python 來實(shí)現(xiàn)這樣的功能,快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05
  • python多線程共享變量的使用和效率方法

    python多線程共享變量的使用和效率方法

    今天小編就為大家分享一篇python多線程共享變量的使用和效率方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

雷州市| 静乐县| 南平市| 潮州市| 大宁县| 濮阳市| 霍城县| 迁安市| 尤溪县| 张掖市| 巴林右旗| 弥勒县| 呼玛县| 明光市| 汪清县| 明水县| 靖州| 武鸣县| 玉环县| 柳州市| 腾冲县| 黄龙县| 屏东县| 仙桃市| 象山县| 藁城市| 巴林左旗| 玉山县| 雷山县| 玛纳斯县| 巨鹿县| 夏津县| 武城县| 正阳县| 仁布县| 雷州市| 育儿| 霸州市| 类乌齐县| 惠安县| 任丘市|