flask 返回json_flask中request.json做了什么

本文探讨了在Flask中遇到的一个400错误问题,详细分析了request.json的实现过程。通过源码解析,发现request.json实际调用了get_json(),该方法会检查Content-Type是否为application/json,然后尝试使用json.loads解析数据。如果Content-Type不正确,将返回None。总结了Flask遵循的原则:若Content-Type指定为application/json,则解析body内容,否则不进行JSON解析。
摘要由CSDN通过智能技术生成

引言

今天同事在一个flask项目写业务的时候碰到一个问题,在写一个get接口时,一直报400,不知道什么原因。后面我帮忙一起看了下。

分析

刚开始我也是一脸懵逼,因为我这边是没报错,他那边报错,后来仔细看了一下报错信息,是request.json发出来的错误,我很好奇的看了一下源码。

    @property
    def json(self):
        """This will contain the parsed JSON data if the mimetype indicates
        JSON (:mimetype:`application/json`, see :meth:`is_json`), otherwise it
        will be ``None``.
        """
        return self.get_json()

request.json原来是调用的get_json(),我们接下来看get_ json()

        if cache and self._cached_json[silent] is not Ellipsis:
            return self._cached_json[silent]

        if not (force or self.is_json):
            return None

        data = self._get_data_for_json(cache=cache)

        try:
            rv = json.loads(da
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值