Django--权限Permissions的例子


Posted in Python onAugust 28, 2019

权限全局配置:

REST_FRAMEWORK = {
  'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated',
  )
}

权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。

在执行视图的dispatch()方法前,会先进行视图访问权限的判断

在通过get_object()获取具体对象时,会进行对象访问权限的判断

如果不指定就用默认的配置:

'DEFAULT_PERMISSION_CLASSES': (
  'rest_framework.permissions.AllowAny',
)

自定义权限:

from rest_framework.permissions import BasePermission
class MyPermission(BasePermission):
  def has_object_permission(self, request, view, obj):
    """
      控制对obj对象的访问权限,吃案例决绝对所有用户的访问
      不能访问单一结果,但是可以访问列表结果
      has_object_permission是否可以访问数据对象, view表示当前视图, obj为数据对象
      .has_permission(self, request, view)是否可以访问视图, view表示当前视图对象
    """
    return False

我们使用之前写的视图类进行验证:

from rest_framework.permissions import IsAuthenticated
class BookInfoViewSet(mixins.ListModelMixin,mixins.RetrieveModelMixin,GenericViewSet):
  """使用GenericViewSet实现返回列表和单一值"""
 
  # 指定序列化器
  serializer_class = BookInfoSerializer
  # 制定查询集
  queryset = BookInfo.objects.all()
  # authentication_classes = [SessionAuthentication]
  # 登陆者的权限.是Admin还是普通用户 是admin可以访问还是普通用户可以访问
  permission_classes = [IsAuthenticated,MyPermission]

提供的权限

AllowAny 允许所有用户
IsAuthenticated 仅通过认证的用户
IsAdminUser 仅管理员用户
IsAuthenticatedOrReadOnly 认证的用户可以完全操作,否则只能get读取

以上这篇Django--权限Permissions的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之编写类之二方法
Oct 11 Python
Python的装饰器用法学习笔记
Jun 24 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python使用代理ip访问网站的实例
May 07 Python
分析python请求数据
Aug 19 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
基于pandas中expand的作用详解
Dec 17 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
Python中函数的返回值示例浅析
Aug 28 #Python
django认证系统实现自定义权限管理的方法
Aug 28 #Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 #Python
对Django的restful用法详解(自带的增删改查)
Aug 28 #Python
Python closure闭包解释及其注意点详解
Aug 28 #Python
python opencv调用笔记本摄像头
Aug 28 #Python
Python threading的使用方法解析
Aug 28 #Python
You might like
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
javascript radio 联动效果
2009/03/04 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python读取和保存图片5种方法对比
2018/09/12 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
C语言编程练习
2012/04/02 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
人事经理岗位职责
2014/04/28 职场文书
安全生产月演讲稿
2014/05/09 职场文书
法院授权委托书格式
2014/09/28 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android