一、介绍
基本上在任何网站上,都无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能。
使用Django,我们可以不需要自己写这些功能,因为Django内置了强大的用户认证系统–auth,它默认使用 auth_user 表来存储用户数据。
from django.contrib import auth # 使用auth认证系统
from django.contrib.auth.models import User # auth认证系统默认使用User表
注意:命令行创建超级用户 python manage.py createsuperuser
二、authenticate()
提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username 、password两个关键字参数。
如果认证成功(用户名和密码正确有效),便会返回一个 User 对象。
authenticate()会在该 User 对象上设置一个属性(id)来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。
用法:
from django.contrib import auth
# 继承的AbstractUser类 密码必须是手动加密的 保存
user_obj = auth.authenticate(username=username,password=pwd)
三、login(request, user)
该函数接受一个HttpRequest对象,以及一个经过认证的User对象。
该函数实现一个用户登录的功能。它本质上会在后端为该用户生成相关session数据。
用法:
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST['username']
password = request.POST['password']<