权限全局配置:

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相关推荐

  1. python开发信息系统权限设置_[Python学习] Django 权限控制

    本文为大家讲解 Django 框架里自带的权限模型,从理论到实战演练,带领大家了解 Django 里权限是怎么一回事. 主要内容 什么是权限管理? Web 权限 Django 权限机制 Django ...

  2. [Python学习] Django 权限控制

    本文为大家讲解 Django 框架里自带的权限模型,从理论到实战演练,带领大家了解 Django 里权限是怎么一回事. 主要内容 什么是权限管理? Web 权限 Django 权限机制 Django ...

  3. django权限管理

    当我们为应用创建一个Models, 在同步到数据库里,django默认给了三个权限 ,就是 add, change, delete权限. 首先,我们创建一个perm_test的project, 然后再 ...

  4. django(权限、认证)系统—— 基于Authentication backends定制

    django(权限.认证)系统-- 基于Authentication backends定制 在这篇文章中,我们进行最后关于DjangoPermission系统的探讨,来谈谈关于Permission系统 ...

  5. django权限系统实现步骤_Django权限机制的实现

    django-permission 本文涉及的技术,已应用于我基于django 1.8+ 开发的博客系统--MayBlog,欢迎交流. 1. Django权限机制概述 权限机制能够约束用户行为,控制页 ...

  6. 视频教程-Python全栈9期(第八部分):CRM开发之curd组件和权限系统-Python

    Python全栈9期(第八部分):CRM开发之curd组件和权限系统 TriAquae开源运维软件创始人,混迹IT运维领域多年,曾就职于松下.国政通.飞信.中金.NOKIA等公司,维护过少至几十台,多 ...

  7. Django 权限管理-后台根据用户权限动态生成菜单

    Django权限管理 实现目标: 1.管理用户,添加角色,用户关联角色 2.添加权限.角色关联权限 3.添加动作.权限关联动作 4.添加菜单.权限关联菜单 实现动态生成用户权限菜单(可设置多级菜单嵌套 ...

  8. python的django框架与springboot_Python系统教学|为什么Django框架在Python开发很重要?...

    Django框架在Python开发很重要,Django框架是一个web框架,且是一个后端框架程序,它不是服务器,需要注意Django框架帮我们封装了很多的组件,帮助我们实现各种功能,具有很强的扩展性. ...

  9. Eclipse+PyDev+Django+Mysql搭建Python web开发环境

    Eclipse+PyDev+Django+Mysql搭建Python web开发环境 Python的web框架有很多,目前主流的有Django.Tornado.Web.py等,最流行的要属Django ...

最新文章

  1. 字节数与字符数mysql_数据库字段长短之字节与字符
  2. torchvision 笔记:ToTensor()
  3. 【Spring注解系列11】Spring后置处理器BeanPostProcessor用法与原理
  4. javascript对象和json字符串之间转换的问题
  5. No grammar constraints (DTD or XML schema).....两种解决方法
  6. 【转】VS2005 CTP 版本这个CTP是什么意思
  7. Docker的今生前世,关于Docker的一些见解
  8. Php怎么挑出不含4的数,关于 64 位 PHP 使用 PHP_INT_SIZE 输出得到 4 的问题
  9. 以盛唐气象,浇胸中块垒:熊逸《唐诗50讲》学习笔记汇总
  10. 将 Android* x86 NDK 供 Eclipse* 而移植 NDK 演示示例应用程序
  11. HTML5在客户端存储数据的方式
  12. 原生 js html 开发成桌面应用 以及打包
  13. LeetCode第82场双周赛
  14. 高中数学之向量外积的运用
  15. 11-20什么是内网,外网,局域网,如何判断
  16. 未能导入activex控件,请确保它正确注册的完美解决方案
  17. PLSQL 常用语句
  18. 喂奶的母亲怎样通过食疗来促进宝宝的健康(三)
  19. 制作一个3D旋转相册
  20. 【软件工具】VMware Tool

热门文章

  1. 信息学奥赛一本通高手训练题解目录
  2. 【Proteus】Proteus里的蜂鸣器的使用
  3. 大前端dux主题更新至5.1,新增9个功能,修复7个bug
  4. TOR BROWSER 洋葱浏览器
  5. Windows 7下直接开启AHCI
  6. MIPS汇编语言学习笔记23:if 语句分支指令
  7. 链路聚合VRRP(虚拟路由器冗余协议)
  8. IbBBX24–IbTOE3–IbPRX17模块通过清除甘薯中的活性氧来增强甘薯对非生物胁迫耐受性
  9. Mall4j电商小程序源码分享
  10. 高速PCB设计之过孔注意