1. 程式人生 > 實用技巧 >django——Auth 模組

django——Auth 模組

Auth模組

建立超級使用者(管理員)

python3 manage.py createsuperuser

from django.contrib import auth

方法

# 1.比對使用者名稱和密碼是否正確
user_obj = auth.authenticate(request,username=username,password=password)

# 2.儲存使用者狀態
auth.login(request,user_obj)
# 執行了該方法 通過request.user獲取到當前登陸的使用者物件

# 3.判斷當前使用者是否登陸
request.user.is_authenticated()

# 4.獲取當前登陸使用者
request.user

# 5.校驗使用者是否登陸裝飾器
from django.contrib.auth.decorators import login_required
# 區域性配置
@login_required(login_url='/login/')
@login_required(login_url='/app01/login/')
# 全域性配置
LOGIN_URL = '/login/'

# 6.比對原密碼
request.user.check_password(old_password)

# 7.修改密碼
request.user.set_password(new_password)
request.user.save()

# 8.登出
auth.logout(request) 

# 9.註冊
User.objects.create(username=username,password=password)
# 寫入資料  不能用create 密碼沒有加密處理

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

# 建立超級使用者:使用程式碼建立超級使用者 郵箱是必填的 而用命令建立則可以不填
User.objects.create_superuser(username=username,email='[email protected]',password=password)

擴充套件auth_user表

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

class UserInfo(AbstractUser):
    phone = models.BigIntegerField()
    
    注意:
        1.在繼承之前沒有執行過資料庫遷移命令
        2.繼承的類裡面不要覆蓋AbstractUser裡面的欄位名

註冊:
AUTH_USER_MODEL = 'app01.UserInfo'
                    '應用名.表名'