DRF-Parser解析器组件源码分析和应用

1. 解析器源码分析

注意:以下源码为了方便理解已进行简化,只保留了解析器相关的代码

# 视图函数:
class MyView(APIView):
 def post(self, request):
 print(self.request.data) # 触发解析流程
 return Response("ok")
解析并获取数据的源码分析:


获取解析器的源码分析:


解析器解析数据的源码分析(以JSONParser为例):

2.实践应用

# 视图类中:
class MyView(APIView):
 # 指定解析器(如果未指定则用默认的parser_classes=[MultiPartParser, JSONParser, FormParser]
 parser_classes = [JSONParser, FormParser] # 只能解析JSON和form表单数据
 # 匹配解析器的方法(默认使用该类中的方法来匹配解析器,即使不显式地写出来也能生效)
 content_negotiation_class = DefaultContentNegotiation
 def post(self, request):
 print(self.request.data)
 return Response("ok")
作者:harry6原文地址:https://www.cnblogs.com/harry6/p/18508869

%s 个评论

要回复文章请先登录注册