功能:用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当前登录用户
![](/qrcode.jpg)
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
也可以不用传
注销:
用户注册:
认证装饰器
==>