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实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
Python获取当前路径实现代码
May 08 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
Python猴子补丁知识点总结
Jan 05 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Python第三方库安装缓慢的解决方法
Feb 06 Python
实例详解Python的进程,线程和协程
Mar 13 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利用array_search与array_column实现二维数组查找
2019/07/08 PHP
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
Python中文编码那些事
2014/06/25 Python
python字典操作实例详解
2017/11/16 Python
浅谈django orm 优化
2018/08/18 Python
python实现录音小程序
2020/10/26 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
J2EE中的容器都包括哪些
2013/08/21 面试题
岳麓书院导游词
2015/02/03 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
工会文体活动总结
2015/05/07 职场文书
历史博物馆观后感
2015/06/05 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle
python playwrigh框架入门安装使用
2022/07/23 Python