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


Posted in Python onJuly 23, 2015

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

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

from django.http import HttpResponseRedirect

def my_view(request):
  if not request.user.is_authenticated():
    return HttpResponseRedirect('/accounts/login/?next=%s' % request.path)
  # ...

或者显示一个出错信息:

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

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

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
  # ...

login_required 做下面的事情:

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

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

Python 相关文章推荐
python多重继承实例
Oct 11 Python
Python中的集合类型知识讲解
Aug 19 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
python实现图片转字符小工具
Apr 30 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
AUC计算方法与Python实现代码
Feb 28 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
详解Django框架中用户的登录和退出的实现
Jul 23 #Python
在Django的session中使用User对象的方法
Jul 23 #Python
Django的session中对于用户验证的支持
Jul 23 #Python
在Django的视图(View)外使用Session的方法
Jul 23 #Python
在Python的Django框架的视图中使用Session的方法
Jul 23 #Python
详解Python的Django框架中的Cookie相关处理
Jul 22 #Python
在Django中使用Sitemap的方法讲解
Jul 22 #Python
You might like
php URL编码解码函数代码
2009/03/10 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JS array 数组详解
2009/03/22 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
通过C++学习Python
2015/01/20 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
浅谈python迭代器
2017/11/08 Python
python验证码识别实例代码
2018/02/03 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
C++面试题:关于链表和指针
2013/06/05 面试题
幼儿园安全检查制度
2014/01/30 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
运动会拉拉队口号
2014/06/09 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
《称赞》教学反思
2016/02/17 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python