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中的闭包总结
Sep 18 Python
Python中的tuple元组详细介绍
Feb 02 Python
Python中处理字符串之islower()方法的使用简介
May 19 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
如何在pycharm中安装第三方包
Oct 27 Python
matlab xlabel位置的设置方式
May 21 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+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
js中this的用法实例分析
2015/01/10 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
python如何查看微信消息撤回
2018/11/27 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python 错误处理 assert详解
2020/04/20 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
意向书范文
2014/03/31 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
小学语文教学随笔
2015/08/14 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
python lambda 表达式形式分析
2022/04/03 Python