Django中判断⽤户是否登录
1.is_authenticate判断⽤户是否登录
django登录注册功能介绍:
Django⽤户认证系统提供了⽅法request.user.is_authenticated()来判断⽤户是否登录。
如果通过登录验证则返回True。反之,返回False。
缺点:登录验证逻辑很多地⽅都需要,所以该代码需要重复编码好多次。
class UserInfoView(View):
"""⽤户中⼼"""
def get(self, request):
"""提供个⼈信息界⾯"""
if request.user.is_authenticated():
return render(request, 'user_center_info.html')
else:
return redirect(reverse('users:login'))
2. Django框架判断登陆的简化⽅案:
使⽤ LoginRequiredMixin 实现:
使⽤⽅法:在需要登录才能访问的视图中继承这个类,然后在setting.py中配置LOGIN_URL = '登录的url'就⾏了
ib.auth.mixins import LoginRequiredMixin
class UsernameCountView(LoginRequiredMixin, View):
# 判断⽤户是否登录,没有登录后重定向到登录页⾯的url
LOGIN_URL='/login/'
访问这个视图后,会先判断是否登录,如果未登录会重定向到配置中LOGIN_URL的url
为了实现登录后定位到未登录时访问的地址,在登录的接⼝中,判断next属性,如果有,重定向到next所指向的位置
# 响应登录结果
next = ('next')
if next:
response = redirect(next)
else:
response = redirect(reverse('contents:index'))
原理:LoginRequiredMixin中在实现重定向到登录页⾯时,会在登录的url中拼接上?next="当前访问地址"  这样,在登录接⼝我们就可以获取到这个地址,从⽽在登录成功后重定向到这个地址

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。