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 将pdf转成图片的方法
Apr 23 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python基于SMTP协议发送邮件
May 31 Python
Python初学者常见错误详解
Jul 02 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
python带参数打包exe及调用方式
Dec 21 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
Vuex简单入门
2017/04/19 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
JS在if中的强制类型转换方式
2018/07/15 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
python多重继承实例
2014/10/11 Python
Python中几个比较常见的名词解释
2015/07/04 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python编写俄罗斯方块
2020/03/13 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
WiFi云数码相框:Nixplay
2018/07/05 全球购物
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
董事长助理岗位职责
2014/02/18 职场文书
高中生家长寄语大全
2014/04/03 职场文书
三年级评语大全
2014/04/23 职场文书
师德师风剖析材料
2014/09/30 职场文书
2014年城管工作总结
2014/11/20 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
优秀班组事迹材料
2014/12/24 职场文书
工程部岗位职责范本
2015/04/11 职场文书
师范生教育见习总结
2015/06/23 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS