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

如何在Flask中获取POST JSON?

聂季同
2023-03-14
问题内容

我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些POSTed JSON。我使用Postman Chrome扩展程序进行POST,而我发布的JSON就是{"text":"lalala"}。我尝试使用以下方法读取JSON:

@app.route('/api/add_message/<uuid>', methods=['GET', 'POST'])
def add_message(uuid):
    content = request.json
    print content
    return uuid

在浏览器上,它可以正确返回我放入GET中的UUID,但是在控制台上,它只是打印出来None(我希望它可以在其中打印出来{"text":"lalala"}。有人知道我如何从Flask方法中获取发布的JSON吗?


问题答案:

首先,该.json属性是一个委托给request.get_json()method的属性,该属性记录了你None在此处看到的原因。

你需要将请求内容类型设置为,application/json以使.json属性和.get_json()方法(不带参数)起作用,None否则两者都会产生这种情况。请参阅Flask Request文档:

如果mimetype表示JSON(包含application / json,请参见is_json()),则它将包含已解析的JSON数据,否则为None

你可以request.get_json()通过向其传递force=True关键字参数来告知跳过内容类型要求。

请注意,如果此时引发异常(可能导致400 Bad Request响应),则你的JSON 数据无效。它在某种程度上畸形;你可能需要使用JSON验证程序进行检查。



 类似资料:
  • 问题内容: 我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些。我使用扩展程序进行,而我发布的就是。我尝试使用以下方法读取JSON: 在浏览器上,它可以正确返回我放入GET中的UUID,但是在控制台上,它只是打印出来(我希望它可以在其中打印出来。有人知道我如何从方法中获取发布的吗? 问题答案: 首先,该.json属性是一个委托给的属性,该属性记录了您None在此处看到的原因。 您

  • 问题内容: 我是python的新手,使用Python Flask并生成REST API服务。 我想检查发送给客户端的授权标头。 但是我找不到在flask中获取HTTP标头的方法。 感谢获得HTTP标头授权的任何帮助。 问题答案: 行为就像字典一样,因此你也可以像使用任何字典一样获取标头:

  • 问题内容: 我需要从表单获取数据。 我使用JavaScript创建表单: 那么我需要从输入字段中获取数据。 这是我的视图函数: 但我得到一个错误: 帮我从表格中获取数据。 问题答案: 从Flask的请求对象获取表单数据: 你还可以设置默认值以避免400错误,如下所示:

  • 问题内容: 使用Flask,如何获得flask连接的当前端口号?我想使用端口0在随机端口上启动服务器,但是我还需要知道我在哪个端口上。 编辑 我认为我已经找到解决该问题的方法,尽管它不能解决问题。我可以遍历以49152开头的端口,并尝试通过使用该端口。我可以在块中执行此操作,以便在出现错误时可以尝试下一个端口。 问题答案: 你无法轻易获得Flask使用的服务器套接字,因为它隐藏在标准库的内部(Fl

  • 问题内容: 我正在尝试从烧瓶视图获取url参数: 如何从视图中获取? 问题答案: 你可以使用以下方法检索查询字符串变量 要么 你要接收的查询字符串中的变量在哪里。

  • 问题内容: 如何在Python(Flask Framework)中获取JSON对象。以下是我的代码段` 如何在我的Python脚本中获取JSON值 这是我在Python中的代码 问题答案: 在您的JavaScript中,将数据转换为JSON并将设置为: 在flask函数中,使用来获取JSON :