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

如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng)

 更新時間:2023年02月13日 11:14:11   作者:Alan and fish  
本文主要介紹了如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.Django默認(rèn)已經(jīng)提供了認(rèn)證系統(tǒng)Auth模塊。

認(rèn)證系統(tǒng)包含:

  • 用戶管理
  • 權(quán)限
  • 用戶組
  • 密碼哈希系統(tǒng)
  • 用戶登錄或內(nèi)容顯示的表單和視圖
  • 一個可插拔的后臺系統(tǒng) admin

Django默認(rèn)用戶的認(rèn)證機制依賴Session機制,我們在項目中將引入JWT認(rèn)證機制,將用戶的身份憑據(jù)存放在Token中,然后對接Django的認(rèn)證系統(tǒng),幫助我們來實現(xiàn):

  • 用戶的數(shù)據(jù)模型
  • 用戶密碼的加密與驗證
  • 用戶的權(quán)限系統(tǒng)

auth存在的位置 External Libraries\site-packages\django\contrib\..其中包括auth模塊和admin模塊.

2.Django用戶模型

Django認(rèn)證系統(tǒng)中提供了用戶模型類User保存用戶的數(shù)據(jù),模型保存位置:D:\anaconda\Lib\site-packages\django\contrib\auth\models.py,默認(rèn)的User包含以下常見的基本字段:

字段名字段描述
username必選。150個字符以內(nèi)。 用戶名可能包含字母數(shù)字,_,@,+ .-個字符。
first_name可選(blank=True)。 少于等于30個字符。
last_name可選(blank=True)。 少于等于30個字符。
email可選(blank=True)。 郵箱地址。
password必選。 密碼的哈希加密串。 (Django 不保存原始密碼)。 原始密碼可以無限長而且可以包含任意字符。
groupsGroup 之間的多對多關(guān)系。
user_permissionsPermission 之間的多對多關(guān)系。
is_staff布爾值。 設(shè)置用戶是否可以訪問Admin 站點。
is_active布爾值。 指示用戶的賬號是否激活。 它不是用來控制用戶是否能夠登錄,而是描述一種帳號的使用狀態(tài)。
is_superuser是否是超級用戶。超級用戶具有所有權(quán)限。
last_login用戶最后一次登錄的時間。
date_joined賬戶創(chuàng)建的時間。 當(dāng)賬號創(chuàng)建時,默認(rèn)設(shè)置為當(dāng)前的date/time。

常用方法:

  • set_password(raw_password)

設(shè)置用戶的密碼為給定的原始字符串,并負(fù)責(zé)密碼的。 不會保存User 對象。當(dāng)Noneraw_password 時,密碼將設(shè)置為一個不可用的密碼。

  • check_password(raw_password)

如果給定的raw_password是用戶的真實密碼,則返回True,可以在校驗用戶密碼時使用。

管理器方法:

管理器方法即可以通過User.objects. 進(jìn)行調(diào)用的方法。

  • create_user(username, email=None, password=None, **extra_fields)

創(chuàng)建、保存并返回一個User對象。

  • create_superuser(username, email, password, **extra_fields)

create_user() 相同,但是設(shè)置is_staffis_superuserTrue。

3.自定義User對象

因為系統(tǒng)默認(rèn)自帶的user對象很多屬性和功能并不是我自己需要的,所以需要我們自己重新定義一個user對象.

第一步:創(chuàng)建一個user app

python manage.py startapp user

創(chuàng)建自定義user對象models.py

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

# Create your models here.
class user(AbstractUser):
    # 聲明自定義user對象
    mobile=models.CharField(max_length=11,unique=True,verbose_name="手機號碼")
    avatar=models.ImageField(upload_to="avatar",verbose_name="用戶頭像")

    class Mata:
        db_table="user"
        verbose_name="用戶信息"
        verbose_name_plural=verbose_name

第二步:配置相關(guān)信息

進(jìn)入主app下面的setting文件中

注冊userapp

在這里插入圖片描述

注冊自定義模型

在這里插入圖片描述

第三步:執(zhí)行數(shù)據(jù)遷移

注意事項:如果是在第一次數(shù)據(jù)遷移之后,猜設(shè)置的AUTH_USER_MODEL自定義模型則會報錯,解決方法如下:

  • 先把現(xiàn)有的數(shù)據(jù)庫導(dǎo)出備份,然后清掉數(shù)據(jù)庫中所有的數(shù)據(jù)表。
  • 把開發(fā)者創(chuàng)建的所有子應(yīng)用下面的migrations目錄下除了__init__.py以外的所有遷移文件,只要涉及到用戶的,一律刪除
  • 把django.contrib.admin.migrations目錄下除了__init__.py以外的所有遷移文件,全部刪除。
  • 把django.contrib.auth.migrations目錄下除了__init__.py以外的所有遷移文件,全部刪除。
  • 把reversion.migrations目錄下除了__init__.py以外的所有遷移文件,全部刪除。
  • 把xadmin.migrations目錄下除了__init__.py以外的所有遷移文件,全部刪除。
  • 接下來,執(zhí)行數(shù)據(jù)遷移,回顧第0步中的數(shù)據(jù),以后如果要修改用戶相關(guān)數(shù)據(jù),不需要重復(fù)本次操作,直接數(shù)據(jù)遷移即可。

刪除表

在這里插入圖片描述

刪除user.migrations目錄下除了__init__.py以外的所有遷移文件,只要涉及到用戶的,一律刪除

在這里插入圖片描述

django.contrib.admin.migrations,django.contrib.auth.migrations,reversion.migrations,xadmin.migrations目錄下除了__init__.py以外的所有遷移文件,全部刪除

在這里插入圖片描述

* 執(zhí)行數(shù)據(jù)遷移
在terminal中執(zhí)行:

python manage.py makemigrations
python manage.py migrate

到此這篇關(guān)于如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng)的文章就介紹到這了,更多相關(guān)Django Auth權(quán)限管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python有序字典簡單實現(xiàn)方法示例

    Python有序字典簡單實現(xiàn)方法示例

    這篇文章主要介紹了Python有序字典簡單實現(xiàn)方法,涉及Python使用OrderedDict方法進(jìn)行字典排序的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別

    python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別

    本文主要介紹了python數(shù)據(jù)類型bytes?和?bytearray的使用與區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • tensorflow學(xué)習(xí)筆記之簡單的神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測試

    tensorflow學(xué)習(xí)筆記之簡單的神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測試

    這篇文章主要為大家詳細(xì)介紹了tensorflow學(xué)習(xí)筆記,用簡單的神經(jīng)網(wǎng)絡(luò)來訓(xùn)練和測試,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python re.match函數(shù)的具體使用

    python re.match函數(shù)的具體使用

    本文主要介紹了python re.match函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)

    Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)

    requests 庫是 Python 的主要方面之一,用于創(chuàng)建對已定義 URL 的 HTTP 請求,本篇文章介紹了 Python requests 模塊,并說明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • python如何求圓的面積

    python如何求圓的面積

    在本篇文章里小編給大家分享了關(guān)于python求圓面積的實例代碼及相關(guān)擴展內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Django項目中表的查詢的操作

    Django項目中表的查詢的操作

    這篇文章主要介紹了Django項目中表的查詢的操作,文中給大家提到了Django項目 ORM常用的十三種查詢方法,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python開啟多個子進(jìn)程并行運行的方法

    python開啟多個子進(jìn)程并行運行的方法

    這篇文章主要介紹了python開啟多個子進(jìn)程并行運行的方法,涉及Python進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Pandas借助Numpy實現(xiàn)優(yōu)化的條件檢索代碼

    Pandas借助Numpy實現(xiàn)優(yōu)化的條件檢索代碼

    Numpy其實是最早的處理數(shù)據(jù)的Python庫,它的核心ndarray對象,是一個高效的n維數(shù)組結(jié)構(gòu),本文主要介紹了Pandas如何借助Numpy優(yōu)化條件檢索,感興趣的可以了解下
    2024-03-03
  • Python如何用pip命令升級所有可以升級的(過時的)包

    Python如何用pip命令升級所有可以升級的(過時的)包

    這篇文章主要介紹了Python如何用pip命令升級所有可以升級的(過時的)包,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

金华市| 平潭县| 阿合奇县| 罗江县| 墨江| 兴安县| 东兰县| 慈利县| 铁岭市| 宜兰县| 偏关县| 靖江市| 惠水县| 松江区| 色达县| 罗定市| 宁陕县| 芒康县| 清涧县| 西华县| 临猗县| 琼结县| 舒兰市| 凌云县| 永年县| 龙江县| 视频| 习水县| 萍乡市| 本溪| 顺昌县| 库伦旗| 宜兴市| 蒙山县| 华亭县| 曲沃县| 武汉市| 军事| 根河市| 嘉荫县| 抚松县|