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读写及压缩和解压缩文件的示例
Jul 08 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
在python 中实现运行多条shell命令
Jan 07 Python
Python 实现域名解析为ip的方法
Feb 14 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
python读取xml文件方法解析
Aug 04 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
js计数器代码
2006/11/04 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
Javascript面向对象编程
2012/03/18 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
Python实现的文本对比报告生成工具示例
2018/05/22 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
基于python实现名片管理系统
2018/11/30 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
庆元旦广播稿
2014/02/10 职场文书
学校火灾防控方案
2014/06/09 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
介绍信的格式
2015/01/30 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技