权限:
问题:不用视图不用权限可以访问 基本使用 写上一个权限类 创建utils 中 permission.py文件
class SvipPermisson(object):
message = "必须是SVIP用户,否则无权访问" #页面无权时报错提示
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True class OrderView(APIView):
"""
订单相关业务 (只有SVIP用户有权限)
"""
#authentication_classes = [FirstAuthtication, Authtication]
permission_classes = [MyPermission, ]
def get(self, request, *args, **kwargs):
self.dispatch
ret = {'code':, "msg":None, 'data':None }
try:
ret['data'] = ORDER_DICT
except Exception as e:
pass
return JsonResponse(ret) self.check_permissons(request) #返回权限的对象列表 或者说 [权限类的对象]
for permission in self.get_permissions():
if not permission.has_permisstion(requst, self): #如果ha_permisstion返回True 就不执行该函数 就可以通过权限认证
self.permission_denied(
request, message = getattr(permission, 'message', None)
)
可以在全局配置 也可以自己定制 REST_FRAMEWORK = {
#全局使用的认证类
#认证
"DEFAULT_AUTHENTICATION_CLASSES":['api.utils.auth.FirstAuthtication',]
"UNAUTHENTICATED_USER":None #匿名用户 request.user = None #权限
"DEFAULT_PERMISSION_CLASSES":['api.utils.permission.SvipPermisson']
} 如果要自定义
可以在class UserInfoVIew(APIView):
"""
订单相关业务(普通用户)
"""
permission_classes = [PublicPermission,] #写完这样 就不会读全局的权限访问 也可以为空 如permission_classes= [] 源码流程:
dispatch
initial
permission 内置的权限
from rest_framework.permissions import BasePermission
class SVIPPermission(BasePermission): #按规范 需要继承BasePermission
message = "必须是SVIP才能访问"
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True 梳理:
.使用
-类: 继承 BasePermission 必须实现 has_permission方法
from rest_framework.permissions import BasePermission
class SVIPPermission(BasePermission): #按规范 需要继承BasePermission
message = "必须是SVIP才能访问"
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True -返回值:
True #有权访问
False #无权访问
抛出异常 一般不做异常抛出异常
message = "SVIP" 局部:
permission_classes = [Mypermission]
全局:
REST_FRAMEWORK = {
"EDEFAULT_PERMISSION_CLASSES" :['api.utils.perimission.MyPermission']
}
.源码流程

rest_framework 权限功能的更多相关文章

  1. 实现ABP中Person类的权限功能

    菜单项的显示功能已经完全OK了.那么我们就开始制作视图功能吧. 首先测试接口是否正常 我们通过代码生成器将权限和application中大部分功能已经实现了.那么我们来测试下这些接口ok不. 浏览/a ...

  2. ztree实现权限功能(横向显示)

    最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...

  3. 基于xml 实现动态加载权限功能树列表---EFSFrame企业级开发架构

    在学习EFSFrame框架的过程中,感触最深的就是通过xml来实现前台与后台数据的交互,页面设计灵活,不用管后台如何写的,前台与后台的交互唯一的交互通道都是xml,在我们需要添加页面.添加规定的格式的 ...

  4. 用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能

    目录 目录 前文列表 扩展阅读 Flask-Principal 使用 Flask-Principal 来实现角色权限功能 添加 Role Model 在 Manager shell 中手动的添加角色 ...

  5. .NET可视化权限功能界面设计

    权限功能是信息系统不可或缺的重要部分,一个优秀的权限设计可以使开发工作事半功倍,给使用者带来良好的使用体验. 企业做生意,都会聘请员工,若是员工数量较多,"权限管理"必不可少,这样 ...

  6. 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能

    9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...

  7. DRF的认证与权限功能

    认证 1.全局配置 在setting.py进行配置. REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( # 'rest_framework. ...

  8. rest_framework 权限流程

    权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...

  9. django框架-DRF工程之权限功能

    1.相对于flask,原生而言django,DRF做的则更加的合理化,想要给予用户相应的权限,首先需要在settings中进行配置 REST_FRAMEWORK = { 'DEAFAULT_PERMI ...

随机推荐

  1. HDU 4303 Contest 1

    说实话,挺复杂的一道题. 我采用栈的方式,DFS在搜索完一个节点的所有子结点后,通过排序,加快计算该结点所有可能的路径:子结点与子结点的连通,子结点与父结点的连通,通过父结点与各祖先结点的连通.同时记 ...

  2. bzoj4554: [Tjoi2016&Heoi2016]游戏(二分图匹配)

    4554: [Tjoi2016&Heoi2016]游戏 题目:传送门 题解: 一道很牛逼的匈牙利..和之前模拟赛的一道题有点相似(不过这题不用完美匹配) 我们可以把连续的行和列全部编号(如果之 ...

  3. JAVA设计模式之【外观模式】

    通过引入一个外观角色来简化客户端与子系统之间的交互. 顾客无需直接和茶叶.茶具.开水等交互,整个泡茶过程由服务员来完成,顾客只需与服务员交互即可. 通过引入一个外观角色可以降低原有系统的复杂度,同时降 ...

  4. GIT将本地项目上传到Github(两种简单、方便的方法)

    GIT将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安 ...

  5. Batch脚本获取日期SET YEAR=%date:~10,4%

    在batch脚本中我们可以通过下面的语句来对日期进行操作: SET YEAR=%date:~10,4% SET MONTH=%date:~4,2% SET DAY=%date:~7,2% SET HO ...

  6. Glidar测试安装

    在上一篇随笔中,我们完成了对Glidar 仿真器的概念层面的认识.接下来,我们将着手对该该仿真器进行安装测试. 1 依赖库的安装 安装环境为Windows 7 64位+Ubuntu14.04 LTS的 ...

  7. STM8S103之串口

    1.串口发送中断标志的清除,只能靠往UART_DR中写数据,这个的本质含义是,发送中断是指发送完成中断,所以往UART_DR中写数据可以清除发送中断标志.但是这样又会导致新写的数据完成后又会产生中断, ...

  8. img图片在ie上有有空隙

    图片在ie下会有空隙 首先在全局样式中设置img标签的边距为0 img { border:0;} 一般有两个方法1,img{float:left}2,img{display:block}

  9. swift语言点评十八-异常与错误

    1.错误类型与枚举的结合 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNee ...

  10. jdk1.8源码分析-hashMap

    在Java语言中使用的最多的数据结构大概右两种,第一种是数组,比如Array,ArrayList,第二种链表,比如ArrayLinkedList,基于数组的数据结构特点是查找速度很快,时间复杂度为 O ...