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

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

 更新時(shí)間:2023年02月13日 11:14:11   作者:Alan and fish  
本文主要介紹了如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)容顯示的表單和視圖
  • 一個(gè)可插拔的后臺(tái)系統(tǒng) admin

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

  • 用戶的數(shù)據(jù)模型
  • 用戶密碼的加密與驗(yàn)證
  • 用戶的權(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包含以下常見(jiàn)的基本字段:

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

常用方法:

  • set_password(raw_password)

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

  • check_password(raw_password)

如果給定的raw_password是用戶的真實(shí)密碼,則返回True,可以在校驗(yàn)用戶密碼時(shí)使用。

管理器方法:

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

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

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

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

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

3.自定義User對(duì)象

因?yàn)橄到y(tǒng)默認(rèn)自帶的user對(duì)象很多屬性和功能并不是我自己需要的,所以需要我們自己重新定義一個(gè)user對(duì)象.

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

python manage.py startapp user

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

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

# Create your models here.
class user(AbstractUser):
    # 聲明自定義user對(duì)象
    mobile=models.CharField(max_length=11,unique=True,verbose_name="手機(jī)號(hào)碼")
    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文件中

注冊(cè)u(píng)serapp

在這里插入圖片描述

注冊(cè)自定義模型

在這里插入圖片描述

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

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

  • 先把現(xiàn)有的數(shù)據(jù)庫(kù)導(dǎo)出備份,然后清掉數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表。
  • 把開(kāi)發(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以外的所有遷移文件,全部刪除。
  • 接下來(lái),執(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

淮北市| 沧源| 土默特右旗| 巫溪县| 钟山县| 会东县| 盱眙县| 临城县| 绥中县| 临泽县| 弋阳县| 荥阳市| 庆城县| 中方县| 临高县| 阳朔县| 宜都市| 馆陶县| 宿州市| 本溪| 密山市| 衡南县| 普洱| 西吉县| 元氏县| 双柏县| 辽源市| 海南省| 许昌县| 高邮市| 神农架林区| 固镇县| 万盛区| 沁阳市| 高青县| 舞阳县| 株洲市| 承德市| 马关县| 九江市| 八宿县|