欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

2.Django用戶模型

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

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

常用方法:

  • set_password(raw_password)

設置用戶的密碼為給定的原始字符串,并負責密碼的。 不會保存User 對象。當Noneraw_password 時,密碼將設置為一個不可用的密碼。

  • check_password(raw_password)

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

管理器方法:

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

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

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

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

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

3.自定義User對象

因為系統(tǒng)默認自帶的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

第二步:配置相關信息

進入主app下面的setting文件中

注冊userapp

在這里插入圖片描述

注冊自定義模型

在這里插入圖片描述

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

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

  • 先把現(xiàn)有的數(shù)據(jù)庫導出備份,然后清掉數(shù)據(jù)庫中所有的數(shù)據(jù)表。
  • 把開發(fā)者創(chuà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ù),以后如果要修改用戶相關數(shù)據(jù),不需要重復本次操作,直接數(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

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

相關文章

最新評論