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')