auth模塊的功能

Auth模塊:

若是你想用auth模塊   那麼你就用全套數據庫

createsuperuser  建立超級用戶 這個超級用戶就能夠擁有登錄django admin後臺管理的權限django

Auth模塊是Django自帶的用戶認證模塊:session

咱們在開發一個網站的時候,無可避免的須要設計實現網站的用戶系統。此時咱們須要實現包括用戶註冊、用戶登陸、用戶認證、註銷、修改密碼等功能,這還真是個麻煩的事情呢。app

Django做爲一個完美主義者的終極框架,固然也會想到用戶的這些痛點。它內置了強大的用戶認證系統--auth,它默認使用 auth_user 表來存儲用戶數據。框架

跟用戶相關的功能模塊
                用戶的註冊 登錄 驗證 修改密碼 ...
            
            執行數據庫遷移命令以後  會生成不少表  其中的auth_user是一張用戶相關的表格
            添加數據
                createsuperuser  建立超級用戶 這個超級用戶就能夠擁有登錄django admin後臺管理的權限

Auth模塊經常使用方法

from django.contrib import auth

查詢用戶

from django.contrib import auth
user_obj = auth.authenticate(username=username,password=password  # 必需要用 由於數據庫中的密碼字段是密文的 而你獲取的用戶輸入的是明文

記錄用戶狀態

auth.login(request,user_obj)  # 將用戶狀態記錄到session中

判斷用戶是否登陸

print(request.user.is_authenticated)  # 判斷用戶是否登陸  若是是大家用戶會返回False

用戶登陸以後 獲取用戶對象

print(request.user)  # 若是沒有執行auth.login那麼拿到的是匿名用戶

校驗用戶是否登陸

from django.contrib.auth.decorators import  login_required

@login_required(login_url='/xxx/')  # 局部配置

def index(request)

    pass

# 全局配置  settings文件中

LOGIN_URL = '/xxx/'

驗證密碼是否正確

request.user.check_password(old_password)

修改密碼

request.user.set_password(new_password)

request.user.save()  # 修改密碼的時候 必定要save保存 不然沒法生效

退出登錄

auth.logout(request)  # request.session.flush()

註冊用戶

User.objects.create(username =username,password=password)  # 建立用戶名的時候 千萬不要再使用create 了

User.objects.create_user(username =username,password=password)  # 建立普通用戶

User.objects.create_superuser(username =username,password=password,email='123@qq.com')  # 建立超級用戶  郵箱必填

自定義auth_user表

第一種 :使用一對一關係  不考慮網站

第二種:   使用類的繼承ui

必定要在配置文件中 告訴djangourl

 告訴django  orm再也不使用auth默認的表  而是使用你自定義的表spa

在setting.py文件中配置設計

AUTH_USER_MODEL = 'app01.Userinfo'  # '應用名.類名'

使用類繼承

 
 
from django.contrib.auth.models import AbstractUser
class Userinfo(AbstractUser):

# 千萬不要跟原來表中的字段重複 只能創新

phone = models.BigIntegerField()

avatar = models.CharField(max_length=32)

最後執行數據庫遷移命令

全部的auth模塊功能 所有都基於你建立的表,而再也不使用auth_user

相關文章
相關標籤/搜索