判断是否登录的装饰器

#装饰器
def deco(func):
def status(request, *args, **kwargs):
if request.session.has_key('islogin'):
print('已经登录')
return func(request, *args, **kwargs)
else:
print('没有登录')
return redirect('/test/login')
return status


#登录显示页面
def login(request):
if request.COOKIES.get('username') and request.COOKIES.get('password'):
user = request.COOKIES['username']
pwd = request.COOKIES['password']
return render(request, 'login.html', {'user': user,
'pwd': pwd})
return render(request, 'login.html')


#登录校验
def login_check(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember')
if models.UserInfo.objects.filter(username=username, password=password):
response = JsonResponse({'res': 1})
request.session['islogin'] = True #设置登录状态然后利用装饰器判断是否登录
if remember == 'on':
response.set_cookie('username', username, max_age=1111)
response.set_cookie('password', password, max_age=1111)
return response
else:
return JsonResponse({'res': 0})
原文地址:https://www.cnblogs.com/fengzi7314/p/9634541.html