美文网首页
DRF-权限源码流程和基本使用

DRF-权限源码流程和基本使用

作者: f050d162bcc1 | 来源:发表于2019-01-12 17:29 被阅读11次

django rest_framework 权限

在视图里面去设置权限

class OrderView(APIView):
    authentication_classes = [MyAuthtication]

    def get(self, request, *args, **kwargs):
        ret = {"state_code": 1000, "msg": "数据请求成功", "data": ORDER_DICT}
        if request.user.user_type != 3:
            ret = {"state_code": 1001, "msg": "无权限", "data": []}

        return JsonResponse(ret)
微信截图_20190111090323
  • postman校验
微信截图_20190111090426

基本使用

class MyPermission(object):

    def has_permission(self,request,view):
        if request.user.user_type != 3:
            return False
        return True
                                            
            
class OrderView(APIView):
    """
    订单相关业务(只有SVIP用户有权限)
    """
    permission_classes = [MyPermission,]
                    
    def get(self,request,*args,**kwargs):
        # request.user
        # request.auth
        self.dispatch
        ret = {'code':1000,'msg':None,'data':None}
        try:
            ret['data'] = ORDER_DICT
        except Exception as e:
            pass
        return JsonResponse(ret)
微信截图_20190111090732
  • 我们可以添加一个message
class MyPermission(object):
    message = "无权访问"
    def has_permission(self, request, view):
        if request.user.user_type != 3:
            return False
        return True
微信截图_20190111091047

源码流程

梳理:

  1. 使用
    • 类,必须继承:BasePermission,必须实现:has_permission方法
from rest_framework.permissions import BasePermission

class SVIPPermission(BasePermission):
    message = "必须是SVIP才能访问"
    dehas_permission(self,request,view):
        if request.useuser_type != 3:
            return False
        return True
  • 返回值:
    • True, 有权访问
    • False,无权访问
  • 局部
class UserInfoView(APIView):
    """
    订单相关业务(普通用户、VIP)
    """
    permission_classes = [MyPermission1, ]

    def get(self,request,*args,**kwargs):
        return HttpResponse('用户信息')
  • 全局
REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES":['api.utils.permission.SVIPPermission']
}

相关文章

  • DRF-权限源码流程和基本使用

    django rest_framework 权限 在视图里面去设置权限 postman校验 基本使用 我们可以添加...

  • 工欲善其事必先利其器之OkHttp解读

    一、OKHttp的基本使用 基本的使用流程如下 二、使用流程源码分析 同步请求流程分析 异步请求流程分析 这里与同...

  • 关于Okhttp3(三)--请求流程

    前两天我们介绍了,基本使用和如何查看源码,今天我们正式进入源码分析流程。 流程图 首先我们先看一看它的请求流程,在...

  • DevStack部署

    部署整体流程 安装git 使用git下载DevStack源码 使用创建用户脚本创建用户 设置用户权限,并移动dev...

  • Spring security4.1.0 自定义角色和权限(长文

    文章大纲:1.spring security 基本配置介绍2.自定义角色和权限配置3.跟着源码走一遍页面请求流程 ...

  • 权限源码流程

    权限模块 rest_framework.permissions是restframework提供的权限模块,其他权限...

  • OkHttp 3.12.0源码分析

    主要参考文章:1.Okhttp的基本使用2.Okhttp主流程源码分析 Okhttp 3.12.0 使用例子 1、...

  • Django drf版本控制

    源码流程 和认证的流程一样,进入initial(request)在认证,权限,节流前先执行了这两句函数,获取到ve...

  • RxJava使用源码探究

    RxJava版本 2.1.4 RxAndroid版本2.0.2 对使用流程进行源码分析,使用如下: 其源码中的流程如下:

  • 定时任务管理系统 - 搭建

    目录 Mongo基本使用设置访问设置权限 Etcd基本使用设置访问设置权限 Cronsun基本使用添加节点 Tod...

网友评论

      本文标题:DRF-权限源码流程和基本使用

      本文链接:https://www.haomeiwen.com/subject/bducdqtx.html