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

1. 解析器源码分析

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

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

图片[1]-DRF-Parser解析器组件源码分析和应用 - 拾光赋-拾光赋

获取解析器的源码分析:

图片[2]-DRF-Parser解析器组件源码分析和应用 - 拾光赋-拾光赋

解析器解析数据的源码分析(以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")

原文链接:DRF-Parser解析器组件源码分析和应用

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容