在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计算三角函数之atan()方法的使用
May 15 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
Django框架用户注销功能实现方法分析
May 28 Python
Python文件操作函数用法实例详解
Dec 24 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
使用Pycharm分段执行代码
Apr 15 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
详解解决jupyter不能使用pytorch的问题
Feb 18 Python
python神经网络学习 使用Keras进行回归运算
May 04 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实现的数组转xml案例分析
2019/09/28 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
vue多次循环操作示例
2019/02/08 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
机械专业个人求职自荐信格式
2013/09/21 职场文书
日语翻译个人求职的自我评价
2013/10/14 职场文书
自动化专业个人求职信范文
2013/11/29 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
幼儿园小班评语
2014/04/18 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python