auth模块
from django.contrib import auth
auth一些方法
创建用户
#引入auth模块的数据库
from django.contrib.auth.models import User
#创建一个对象
User.objects.create_user(username = username, password = password)
django 创建项目就会产生的auth_user表,
我们只是添加了两个字段,这里会有很多默认字段,并且是加密保存的密码
用户认证
#引入模块
from django.contrib.auth import authenticate
#一般需要username password两个关键字参数
authenticate(username=username, password=password)
登录
from django.contrib.auth import login
#该函数接受一个HttpRequest对象,以及一个认证了的User对象
login(request,user)
注销登录
from django.contrib.auth import logout
#当调用该函数时,当前请求的session信息会全部清除
logout(request)
其他一些方法
是否登录 is_authenticated
ob = request.user.is_authenticated
print(ob)
返回的时bool值,
(作用)根据用户登录与否做相应操作
装饰器 @login_requierd
@login_required
def order(request)
用户登录才能访问order页面
修改密码 set_password()
user = User.objects.get(username='')
user.set_password(password='')
user.save
小例子:
views.py
def log(request): if request.method == 'POST': username = request.POST['name'] password = request.POST['pwd'] user = authenticate(username=username, password=password) #验证登录用户是否存在 if user: login(request,user) #登录 print(request.user) print(request.user.is_authenticated) return HttpResponse('登录成功') else: return HttpResponse('用户名或者密码不正确') return render(request,'login.html')
def regist(request):
if request.method == 'POST':
username = request.POST['name']
password = request.POST['pwd']
user = User.objects.create_user(username = username, password = password) #创建用户
return HttpResponse('注册成功')
return render(request,'regist.html')