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基于windows平台锁定键盘输入的方法
Mar 05 Python
python关键字and和or用法实例
May 28 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
python筛选出两个文件中重复行的方法
May 31 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
django列表筛选功能的实现代码
Mar 27 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
为什么称python为胶水语言
Jun 16 Python
Python实现粒子群算法的示例
Feb 14 Python
python中pandas对多列进行分组统计的实现
Jun 18 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 date与gmdate的获取日期的区别
2010/02/08 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
javascript自执行函数
2017/02/10 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
js实现时钟定时器
2020/03/26 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
python操作 hbase 数据的方法
2016/12/18 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python实现简单学生信息管理系统
2020/04/09 Python
零基础学python应该从哪里入手
2020/08/11 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
中青班党性分析材料
2014/02/16 职场文书
陈欧广告词
2014/03/14 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
个人投资计划书
2014/05/01 职场文书
门面房租房协议书
2014/08/20 职场文书
员工趣味活动方案
2014/08/27 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
结婚保证书
2015/01/16 职场文书
初中生物教学随笔
2015/08/15 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书