使用者認證元件
功能:用session記錄登入驗證狀態
前提:使用者表:django自帶的auth_user
python3 manage.py makemigrations
python3 manage.py migrate
建立超級使用者:python3 manage.py createsuperuser
API:
from django.contrib import auth
auth.authenticate(username=user,password=pwd) # 驗證使用者名稱密碼
auth.login(request,user) # 登入成功後,request.user當前登入使用者
auth.logout() # 登出使用者
from django.contrib.auth.models import User #User == auth_user
request.user.is_authenticated() True False
user= User.objects.create_user(username='',password='',email='')
補充:
匿名使用者物件:
匿名使用者
class models.AnonymousUser
django.contrib.auth.models.AnonymousUser 類實現了django.contrib.auth.models.User介面,但具有下面幾個不同點:
id 永遠為None
username 永遠為空字串
get_username()永遠返回空字串
is_staff和is_superuser永遠為False
is_active 永遠為False
groups和user_permissions永遠為空
is_anonymous() 返回True 而不是False
set_password(),check_password(),save()和delete()引發NotImplementedError.
New in Django 1.8:
新增AnonymousUser.get_username()以更好地模擬django.contrib.auth.models.User.
總結:request.user
if not: auth.login(request,user) request.user == AnonymousUser()
else: request.user==登入物件
request.user是一個全域性物件
在任何檢視和模板直接使用
認證裝飾器:@login_required
也可以不用傳
登出:
使用者註冊:
認證裝飾器
==>