在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 17 Python
初步剖析C语言编程中的结构体
Jan 16 Python
python rsa 加密解密
Mar 20 Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Django如何使用jwt获取用户信息
Apr 21 Python
python可迭代对象去重实例
May 15 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python实现哲学家就餐问题实例代码
Nov 09 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php生成WAP页面
2006/10/09 PHP
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
php目录拷贝实现方法
2015/07/10 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Python输出各行命令详解
2018/02/01 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
html5实现滑块功能之type="range"属性
2020/02/18 HTML / CSS
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
小学开学寄语
2014/01/19 职场文书
寄语学生的话
2014/04/10 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
企业承诺书格式范文
2015/04/28 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
销售口号霸气押韵
2015/12/24 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书