from django.contrib import auth
authenticate():可以用来验证用户名和密码是否正确,验证成功会返回一个user对象
user = auth.authenticate(username=username,password=password)
login():实现用户登录功能,会在后台为登录用户生成session数据,接收两个参数,一个是HTTPRequest和authenticate认证过的用户对象
auth.login(request,user)
return redirect('index')
logout():实现注销功能,清除当前登录用户数据库中的session数据
auth.logout(request)
return redirect('login')
is_authenticated():判断当前用户是否通过认证,结果为布尔值
ret = request.user.is_authenticated
print(ret)
login_required():auth模块提供的一个装饰器工具
如果用户没有登录,默认跳转到login,并传递当前url绝对路径
当用户访问index时,若没有登录会跳转到登录页面
from django.contrib.auth.decorators import login_reqired
LOGIN_URL = '/login/'
@login_reqired
def index(request):
return render(reqeust,'index.html')
用户相关
create_superuser():创建一个超级用户,接收username,password两个必要参数,这个方法很少使用
from django.+contrib.auth.models import User
user = User.objects.create_superuser(username='用户名',password=密码)
create_user():新创建的用户将会保存在auth_user数据表中的密码是加密的
User.objects.create_user(username='li', password='1234')
check_password():检查登录用户密码是否正确,需要当前请求用户的密码
密码正确返回True
user = User.objects.create_user(username=1,password=1)
ret = user.check_password()
print(ret) #False
return HttpResponse('创建成功')
set_password():用于修改密码,接收新密码作为参数,最后执行save()保存
def set_password(request):
request.user.set_password('12')
password = request.user.password
request.user.save()
print(password)
return HttpResponse('修改成功')