django-auth

def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
# models.UserInfo.objects.filter(username=username,password=password)
user_obj = auth.authenticate(request,username=username,password=password)
if user_obj:
# request.session['user'] = user_obj
auth.login(request,user_obj) #取值 request.user.username
if request.GET.get('next'):
return redirect(request.GET.get('next'))
return redirect('index')
return HttpResponse('登录失败')
return render(request,'login.html')


1 登录
# models.UserInfo.objects.filter(username=username,password=password)
user_obj = auth.authenticate(request,username=username,password=password)

2 类似session操作
添加
# request.session['user'] = user_obj
auth.login(request,user_obj) #取值 request.user.username
删除
auth.logout(request) # 等价于 request.session.flush() 删除记录
return redirect('login')

3 装饰器-登录认证
from django.contrib.auth.decorators import login_required
# 只有登录才可以进入 不然自动跳转登录页面 局部配置
# 全局配置 在setting文件里面 写一行 LOGIN_URL='/login/'
# @login_required 不要加括号了
@login_required(login_url='/login/')
def index(request):
print(request.user.is_authenticated()) # 判断用户是否登录
return render(request,'index.html')

4 注册
from django.contrib.auth.models import User
# models.UserInfo.objects.create(username=username,password=password)
User.objects.create_user(username=username,password=password)

5

posted @ 2020-08-17 13:15  李淳罡zZ  阅读(93)  评论(0)    收藏  举报