def login_require(func):
def inner(self, request, *args, **kwargs):
is_login = request.COOKIES.get('cookies_key') # 获取cookies
obj = models.UserInfo.objects.filter(username=is_login).first()
ReturnUrl = request.path_info # 获取用户想要跳转的页面
if obj and is_login == obj.username: # 判断浏览拿器携带的cookies状态,符合要求,证明登录,可以进行路由相应的函数
ret = func(self, request, *args, **kwargs)
else: # 如果访问没有携带着cookies,定向为跳转的也页面
ret_before = reverse('login') + '?ReturnUrl={}'.format(ReturnUrl) # 匹配地址
ret = redirect(ret_before) # 定向
return ret # 返回HttpResponse对象
#
return inner