首页 > 编程 > Python > 正文

在Django中限制已登录用户的访问的方法

2020-01-04 17:59:28
字体:
来源:转载
供稿:网友

这篇文章主要介绍了在Django中限制已登录用户的访问的方法,Django是最具人气的Python开发框架,需要的朋友可以参考下

有很多原因需要控制用户访问站点的某部分。

一个简单原始的限制方法是检查 request.user.is_authenticated() ,然后重定向到登陆页面:

 

 
  1. from django.http import HttpResponseRedirect 
  2.  
  3. def my_view(request): 
  4. if not request.user.is_authenticated(): 
  5. return HttpResponseRedirect('/accounts/login/?next=%s' % request.path) 
  6. # ... 

或者显示一个出错信息:

 

 
  1. def my_view(request): 
  2. if not request.user.is_authenticated(): 
  3. return render_to_response('myapp/login_error.html'
  4. # ... 

作为一个快捷方式, 你可以使用便捷的 login_required 修饰符:

 

 
  1. from django.contrib.auth.decorators import login_required 
  2.  
  3. @login_required 
  4. def my_view(request): 
  5. # .. 

login_required 做下面的事情:

如果用户没有登录, 重定向到 /accounts/login/ , 把当前绝对URL作为 next 在查询字符串中传递过去, 例如: /accounts/login/?next=/polls/3/ 。

如果用户已经登录, 正常地执行视图函数。 视图代码就可以假定用户已经登录了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表