在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判断文件和文件夹是否存在的方法
May 21 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Python正则表达式和re库知识点总结
Feb 11 Python
简单了解django缓存方式及配置
Jul 19 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
python如何把字符串类型list转换成list
Feb 18 Python
python正则表达式实例代码
Mar 03 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
Python爬虫开发与项目实战
Dec 16 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 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直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
js实现购物车功能
2018/06/12 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
python将ip地址转换成整数的方法
2015/03/17 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
水果超市创业计划书
2014/01/27 职场文书
房地产财务管理制度
2014/02/02 职场文书
小学班主任评语大全
2014/04/23 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
合作协议书模板2014
2014/09/26 职场文书
幼儿园开学通知
2015/04/24 职场文书
小学总务工作总结
2015/08/13 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python