用戶認證組件
功能:用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
也可以不用傳
註銷:
用戶註冊:
認證裝飾器
==>
用戶認證組件