在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 中文乱码问题深入分析
Mar 13 Python
python使用PyFetion来发送短信的例子
Apr 22 Python
python实现封装得到virustotal扫描结果
Oct 05 Python
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
没编程基础可以学python吗
Jun 17 Python
如何获取numpy array前N个最大值
May 14 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
python动态网页批量爬取
2016/02/14 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python socket实现简单聊天室
2018/04/01 Python
python版本的仿windows计划任务工具
2018/04/30 Python
python版DDOS攻击脚本
2019/06/12 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
如何对python的字典进行排序
2020/06/19 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
2014年车间主任工作总结
2014/12/10 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
学校社团活动总结
2015/05/07 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
班主任工作总结范文
2015/08/13 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书