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的PEAK来适配协议的教程
Apr 14 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
python中如何打包用户自定义模块
Sep 23 Python
python通过函数名调用函数的几种场景
Sep 23 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python 如何上传包到pypi
Dec 24 Python
python 爬取吉首大学网站成绩单
Jun 02 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 中的str_replace 函数总结
2007/04/27 PHP
php获取参数的几种方法总结
2014/02/18 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
理解javascript对象继承
2016/04/17 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
python中os模块详解
2016/10/14 Python
python MySQLdb使用教程详解
2018/03/20 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
新闻记者个人求职的自我评价
2013/11/28 职场文书
银行求职自荐书
2014/06/25 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
利用python做数据拟合详情
2021/11/17 Python
详解Python中*args和**kwargs的使用
2022/04/07 Python
Golang jwt身份认证
2022/04/20 Golang
Java Redisson多策略注解限流
2022/09/23 Java/Android