权限:
问题:不用视图不用权限可以访问 基本使用 写上一个权限类 创建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. Ubuntu17.04安装WineQQ7.8及微信

    安装qq2012成功,但是提示版本过低,qq登录失败. 安装WineQQ WineQQ7.8下载 安装依赖软件,方法来源网上 32位ubuntu:sudo apt install libgtk-3-0 ...

  2. Maven传递依赖的时候,同名包不同版本号的包均会下载,可是编译的时候,仅仅会载入一个高版本号的。

    描写叙述,在一个Maven项目中.同一时候依赖了spring-tomcat-weaver  和  struts-core 包.可是spring-tomcat-weaver 须要commons-dige ...

  3. C++11新特性应用--介绍几个新增的便利算法(用于分区的几个算法)

    今天继续. C++11新增的关于Non-modifying sequence operations和Modifying sequence operations的算法已经写了.具体信息见之前的博客. 以 ...

  4. 1.RunLoop是什么?

    1.Run loops是线程相关的的基础框架的一部分. 一个run loop就是一个事件处理的循环.用来不停的调度工作以及处理输入事件.使用run loop的目的是让你的线程在有工作的时候忙于工作.而 ...

  5. 20.boost dijkstra最短路径算法

    到某个点的最短距离                到终点的最短路径 完整代码 #include <iostream> #include <string> #include &l ...

  6. Eclipse里Tomcat报错:Document base ……does not exist or is not a readable directory(图文详解)

    问题描述: 严重: Error starting static Resourcesjava.lang.IllegalArgumentException: Document base D:\Code\M ...

  7. C#如何生成一个随机种子for Random?

    就这么写: Random rand = new Random((int)DateTime.Now.Ticks); 或者这么写: Random rand = new Random(new Guid(). ...

  8. C# HttpHelper万能框架实现 接口

    POST请请求是使用Http协议与请求的URL进行连接,然后再写入数据,最后关闭连接的过程 方法(1) //要Post的数据 string postdate = "a=123&c=4 ...

  9. SpringCloud学习笔记(14)----Spring Cloud Netflix之Hystrix对Feign的支持

    1. Hystrix对Feign的支持 添加Feign中IUserBiz的实现类HystrixFallBack: package com.wangx.cloud.springcloud02consum ...

  10. Maven缺少jar添加方式

    Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo ...