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 import自定义模块方法
Feb 12 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
python实现zabbix发送短信脚本
Sep 17 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
Python实现微信表情包炸群功能
Jan 28 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python中的集合类型知识讲解
2015/08/19 Python
人机交互程序 python实现人机对话
2017/11/14 Python
对python的文件内注释 help注释方法
2018/05/23 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
使用python进行拆分大文件的方法
2018/12/10 Python
python实现flappy bird游戏
2018/12/24 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
python tkinter canvas使用实例
2019/11/04 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
法国时尚童装网站:Melijoe
2016/08/10 全球购物
C语言基础笔试题
2013/04/27 面试题
优秀员工推荐信
2014/05/10 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python