zoukankan      html  css  js  c++  java
  • rest-framework之解析器

    解析器作用

    在我的视图类里能够控制前端传过来的数据格式,再对前端传过来的请求头 content-type数据格式进行解析,有application/json,x-www-form-urlencoded,form-data等格式

    三种编码格式

    -urlencoded:在body体中的格式是:name=zyl&age=18&wife=gaoyuanyuan
    -formdata:在body体中的格式数据部分跟文件部分有区分
    -json格式:在body体中就是json格式

    json格式

    urlencoded,formdata

     现在限制就只能解析json格式,就要用到解析器

    现点APIview找到解析器的固定名先给他写上去然后导入JSONParser

    from rest_framework.parsers import JSONParser

    点parsers进去如果不知道每个类代表什么可以点进去看这里

    局部使用

    全局使用

    这个我们不自己配,他默认DEFAULT里面也已经给我们配好了三个,除非我们要限制只能解析JSON格式,

    settings.py配置

    REST_FRAMEWORK = {
        'DEFAULT_PARSER_CLASSES':[
            'rest_framework.parsers.JSONParser'
            'rest_framework.parsers.FormParser'
            'rest_framework.parsers.MultiPartParser'
        ]
    
    }

     源码分析

    解析器的入口是request里的data方法

    点进去

    media_type是解析类型, 

    每个类都有一个parse方法,这就是鸭子类型

    源码流程:

    -当调用request.data的时候去执行解析方法----》根据传过来的编码方式选择一个解析器对象,调用解析器对象的parser方法完成解析

  • 相关阅读:
    Android Virtual Device(AVD)屏幕大小调整
    修改obj三维模型文件中坐标z为其相反数
    AE安装检测(C++)
    单件模式
    地形转立体实验截图
    保持几何特征的三维建筑物模型简化方法 毕业硕士论文
    判断多边形点串存放序列
    mathematica 查找 mathpass 注册文件位置
    在线调色板搜集
    图标资源搜集
  • 原文地址:https://www.cnblogs.com/zhengyuli/p/11142801.html
Copyright © 2011-2022 走看看