1、登陆校验成功后,将后续需要使用的数据记录到session里
def login(request):
"""
登陆
:param request:
:return:
"""
if request.method == 'GET':
return render(request, 'login.html')
elif request.method == 'POST':
result = {'status': False, 'message': None, 'data': None}
form = LoginForm(request=request, data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
print(username)
password = form.cleaned_data.get('password')
print(password)
user_info = models.UserInfo.objects. \
filter(username=username, password=password). \
values('nid', 'nickname',
'username', 'email',
'avatar',
'blog__nid',
'blog__site').first()
if not user_info:
result['message'] = '用户名或密码错误'
else:
result['status'] = True
request.session['user_info'] = user_info #字典类型
if form.cleaned_data.get('rmb'):
request.session.set_expiry(60 * 60 * 24 * 7)
else:
print(form.errors)
if 'check_code' in form.errors:
result['message'] = '验证码错误或者过期'
else:
result['message'] = '用户名或密码错误'
return HttpResponse(json.dumps(result))
后续使用,直接取session数据()如要在页面根据登陆状态取用户的名字之类的:
@check_login
def category(request):
"""
博主个人分类管理
:param request:
:return:
"""
#查询数据库表,将数据传给前端展示
if request.method == 'GET':
#通过ssession获取用户信息
bid = request.session['user_info']['blog__nid']
print(bid)
categorylist = models.Category.objects.filter(blog_id=bid)
print (categorylist)
return render(request, 'backend_category.html',{'categorylist':categorylist})
elif request.method == 'POST':
return render(request, 'backend_category.html')