Django drf解析器

本文深入探讨了Django REST framework中的解析器工作原理,包括JSONParser和FormParser的使用方式,以及它们如何处理不同类型的数据请求。通过源码流程剖析,揭示了请求数据的解析过程,帮助读者理解如何在API视图中正确配置和使用解析器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码流程

  1. 本质
  • 请求头
  • 状态吗
  • 请求方法
  1. 源码流程
  • dispatch : request封装
  • request.data

使用

  1. 局部
from rest_framework.parsers import JSONParser, FormParser
class ParserView(APIView):
    parser_classes = [JSONParser]
    """
    JSONParser: 表示只能解析 application/json 请求头
    FormParser: 表示只能解析 application/x-www-form-urlencoded 请求头
    """
    def post(self, request, *args, **kwargs):
        """
        允许用户发送JSON格式的数据
            a. content-type: application/json
            b. {"name": 'alex', "age": 18}
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        """
        1. 获取用户请求
        2. 获取用户请求体
        3. 根据用户请求头和 parser_classes = [JSONParser, FormParser] 中支持的请求头进行比较
        4. JSONParser对象中去请求体
        5. request.data
        """
        print(request.data)
        return HttpResponse('JSON测试')
  1. 全局
# 全局使用
REST_FRAMEWORK = {
"DEFAULT_PARSER_CLASSES":  ["rest_framework.JSONParser", "rest_framework.FormParser"]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值