DRF解析器源码分析

DRF解析器源码分析

1 解析器

解析请求者发来的数据(JSON)

使用 request.data 获取请求体中的数据。

这个 reqeust.data 的数据怎么来的呢?其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。

drf默认的解析器三个JSONParser, FormParser, MultiPartParser

1.1 JSONParser (*)

只支持JSON格式的数据

1.2 FormParser

1.3 MultiPartParser(*)

既支持发送数据,又支持传输文件

解析器可以设置多个,默认解析器:

python 复制代码
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.parsers import MultiPartParser, JSONParser, FormParser

class UserView(APIView):
    parser_classes = [MultiPartParser, JSONParser, FormParser]
    def post(self, request):
        print(request.content_type)
        print(request.data)
        return Response("...")

1.5 源码分析

相关推荐
jserTang几秒前
手撕 Claude Code-4: TodoWrite 与任务系统
前端·javascript·后端
jserTang2 分钟前
手撕 Claude Code-5:Subagent 与 Agent Teams
前端·javascript·后端
柯西劝我别收敛9 分钟前
K8s Scheduling Framework 解析
后端
大佬王21 分钟前
WebSocket 连接池生产级实现:实时行情高可用与负载均衡
python·架构
金銀銅鐵32 分钟前
[Java] 从 class 文件看 cglib 对 MethodInterceptor 的处理 (下)
java·后端
ronindong1 小时前
Cursor 插件分享 | md-couture:一键将 Markdown 转换成带精美样式的 HTML
人工智能·python·ai编程
智慧地球(AI·Earth)1 小时前
规则引擎实战:Python中re库和pyknow库规则引擎实战教程
开发语言·python·程序人生
Walter先生1 小时前
WebSocket 连接池生产级实现:实时行情高可用与负载均衡
后端·websocket·架构
是小蟹呀^1 小时前
【总结】LangChain中的中间件Middleware
python·中间件·langchain·agent
qq_342295821 小时前
如何为容器内多个列表实现统一滚动条.txt
jvm·数据库·python