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下安装easy_install的方法
Feb 10 Python
python使用cookie库操保存cookie详解
Mar 03 Python
Python实现简单状态框架的方法
Mar 19 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
python实现数据分析与建模
Jul 11 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
iPython pylab模式启动方式
Apr 24 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
python模板入门教程之flask Jinja
Apr 11 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
通过html表格发电子邮件
2006/10/09 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
Javascript注入技巧
2007/06/22 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
Python列表list排列组合操作示例
2018/12/18 Python
python实现烟花小程序
2019/01/30 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
个人自我鉴定总结
2014/03/25 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
企业催款函范本
2015/06/24 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书