Django爲咱們寫好的一個綜合的用戶管理模塊。這個模塊爲咱們提供了關於用戶管理的大多數方法。html
from django.contrib import auth
authenticate(username,password)python
判斷用戶名密碼是否存在,存在返回認證的對象,不然返回Nonedjango
user_obj = auth.authenticate(username = username, password = password) print(user_obj)
is_authenticatesession
判斷當前請求是否通過驗證app
if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
login(user_obj)網站
登陸:須要將認證過得對象傳入,會自動幫你添加sessionui
auth.login(request, user_obj)
logout(request)url
退出登陸code
auth.logout(request)
login_requierdhtm
語法糖,自動幫咱們作權限認證,例若有沒有登陸,login_url設置跳轉的接口
@login_required(login_url="/login") def home(request): return render(request, "home.html")
create_user
建立普通用戶
from django.contrib.auth.models import User user_obj = User.objects.create_user(username=username, password=password)
create_superuser
建立管理員用戶
user_obj = User.objects.create_superuser(username=username, password=password, email=email) # 管理員用戶必需要傳三個參數
check_password
查看密碼時候一致
is_pwd = request.user.check_password(password)
set_password
設置新密碼,設置密碼必需要保存,而且修改密碼後session會失效,這是Django的機制使然
request.user.set_password(new_pwd) request.user.save()
from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): phone = models.CharField(max_length=11, null=True, unique=True) addr = models.CharField(max_length=32, null=True)
在models.py 中添加完拓展類後還須要在setting.py 中配置
AUTH_USER_MODEL = "app名.UserInfo"