在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实现telnet服务器的方法
Jul 10 Python
python常见的格式化输出小结
Dec 15 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
一百多行python代码实现抢票助手
Sep 25 Python
pandas重新生成索引的方法
Nov 06 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
微信小程序调用python模型
Apr 21 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/06/08 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
js实现图片实时时钟
2020/01/15 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
心得体会范文
2014/01/04 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
副总经理岗位职责
2014/03/16 职场文书
物资采购方案
2014/06/12 职场文书
宣传口号大全
2014/06/16 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
助学金感谢信
2015/01/20 职场文书
2015年度物流工作总结
2015/04/30 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
解决Oracle数据库用户密码过期
2022/05/11 Oracle
Nginx利用Logrotate实现日志分割
2022/05/20 Servers