当前位置: 首页 > 面试题库 >

Flask请求和应用程序/ json内容类型

汪才英
2023-03-14
问题内容

我有一个烧瓶应用程序,具有以下视图:

@menus.route('/', methods=["PUT", "POST"])
def new():
    return jsonify(request.json)

但是,这仅在请求的内容类型设置为时才有效application/json,否则dict request.json为None。

我知道request.data请求主体为字符串,但我不想每次客户端忘记设置请求的内容类型时都将其解析为字典。

有没有办法假设每个传入请求的content-
type是application/json?我想要的就是始终访问有效的request.json字典,即使客户端忘记将应用程序的内容类型设置为json。


问题答案:

使用request.get_json()并设置forceTrue

@menus.route('/', methods=["PUT", "POST"])
def new():
    return jsonify(request.get_json(force=True))

从文档中:

默认情况下,如果mimetype为,则此函数仅加载json数据,application/json但可以被 force 参数覆盖。

参数:

  • 强制 –如果设置为 True ,则忽略模仿类型。

对于低于0.10的旧Flask版本,如果您想宽恕并允许JSON,则始终可以自己明确地进行解码:

from flask import json

@menus.route('/', methods=["PUT", "POST"])
def new():
    return jsonify(json.loads(request.data))


 类似资料:
  • 问题内容: 我在Flask视图中遇到问题,该视图应返回内容类型为“ application / json”的响应以响应POST请求。具体来说,如果我这样做: 对此视图: 我得到某种连接重置: 如果相反,我这样做: 至: 我得到了预期的全面答复(200 ok) 顺便说一句,如果我将GET请求发送到同一JSON路由: 我也得到了预期的答复。 问题答案: 感谢Audrius的评论,我找到了uWSGI和n

  • 我的要求很简单。 响应是xml格式的。 我尝试了很多地方的例子,但似乎没有任何效果。它返回401 Unauthorized,如果请求的格式不正确,目标API就会抛出这个错误。

  • 我正在努力将带有JSON有效负载的POST请求发送到远程服务器。 此GET curl命令工作正常: 这个POST也很好: 所以我试着在我的Android应用程序中模仿它。 该应用程序在第一个GET请求上运行良好,但在第二个POST请求上发出400个错误请求。 下面是用于GET请求的代码: 以下是POST请求的源代码: 但它传达了这样一个信息: 这是Spring座控制器: 凭据资源类代码:

  • 我正在Eclipse Enterprise中通过Spring框架而不是Spring Boot编写一个MVC项目。使用Postman,我将向我的方法发送一个json对象: 但是在Eclipse中,我收到了这个错误: 我认为这与我的pom.xml和依赖有关: pom中是否有任何内容。xml我应该更改吗? 其他细节如网络。xml: -servlet.xml

  • 下面是我的Ajax请求: 如果我没有精确的内容类型,我就无法再看到Firebug的请求。相反,当我添加内容类型时,我可以看到POST请求(由于我的URL是false而出现错误),但在我的头中,内容类型默认是URL编码的表单。 我想要的是通过JSON数据发送表单的详细信息。谢谢你的帮助

  • 我正在使用JavaSpring框架创建一个时事通讯API。每当我以请求模型的帖子的形式访问API时,我都会得到这个例外组织。springframework。网状物HttpMediaTypeNotSupportedException。 这是我的时事通讯模型 这是我的NewsletterMailerList模型 我给包含类型作为应用程序/json。我是新来做这种事情的。请帮助我为什么会出现这个错误。如