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 相关文章推荐
在Linux下调试Python代码的各种方法
Apr 17 Python
python基础教程之五种数据类型详解
Jan 12 Python
python连接数据库的方法
Oct 19 Python
python针对excel的操作技巧
Mar 13 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
tensorflow实现简单的卷积神经网络
May 24 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
想学python 这5本书籍你必看!
Dec 11 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
如何基于python实现不邻接植花
May 01 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 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
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
简单的php购物车代码
2020/06/05 PHP
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python类反射机制使用实例解析
2019/12/30 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
应聘医药代表职位求职信
2013/10/21 职场文书
迟到检讨书900字
2014/01/14 职场文书
抽样调查项目计划书
2014/04/24 职场文书
体育运动口号
2014/06/09 职场文书
党员志愿者活动方案
2014/08/28 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
雷锋的观后感
2015/06/10 职场文书
《实心球》教学反思
2016/02/23 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技