django——Auth 模組
阿新 • • 發佈:2020-08-17
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' '應用名.表名'