在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 相关文章推荐
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
详解Django rest_framework实现RESTful API
May 24 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python中修改字符串的四种方法
Nov 02 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
python使用递归的方式建立二叉树
Jul 03 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
python多线程同步之文件读写控制
Feb 25 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
Python之matplotlib绘制饼图
Apr 13 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
德生PL660的电路分析和打磨
2021/03/02 无线电
PHP控制网页过期时间的代码
2008/09/28 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Python中的下划线详解
2015/06/24 Python
python生成ppt的方法
2018/06/07 Python
Numpy中的mask的使用
2018/07/21 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
python 贪心算法的实现
2020/09/18 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
关于Python错误重试方法总结
2021/01/03 Python
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
留学推荐信怎么写
2014/01/25 职场文书
铁路个人事迹材料
2014/01/30 职场文书
境外导游求职信
2014/02/27 职场文书
司法助理专业自荐书
2014/06/13 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
社会实践单位意见
2015/06/05 职场文书
安全第一课观后感
2015/06/18 职场文书