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 30 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
pandas 数据实现行间计算的方法
Jun 08 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
使用python客户端访问impala的操作方式
Mar 28 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
python算的上脚本语言吗
Jun 22 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 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新特性详解之命名空间、性状与生成器
2017/07/18 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python yield与实现方法代码分析
2018/02/06 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python多线程同步实例教程
2019/08/11 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
python中spy++的使用超详细教程
2021/01/29 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
师范生实习的个人自我鉴定
2013/10/20 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
仓库主管岗位职责
2014/03/02 职场文书
自查自纠工作总结
2014/10/15 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
2014年城市管理工作总结
2014/12/02 职场文书