Flask 中如何返回 JSON 响应?

推荐答案

在 Flask 中返回 JSON 响应,可以使用 jsonify 函数。jsonify 是 Flask 提供的一个便捷函数,用于将 Python 字典或列表转换为 JSON 格式的响应。以下是一个简单的示例:

-- -------------------- ---- -------
---- ----- ------ ------ -------

--- - ---------------

-------------------
--- -----------
    ---- - -
        ------- ----- -----
        ------ ---
        ------- ---- -----
    -
    ------ -------------

-- -------- -- -----------
    -------------------

在这个示例中,jsonify 函数将 data 字典转换为 JSON 格式,并自动设置响应的 Content-Typeapplication/json

本题详细解读

1. jsonify 函数的作用

jsonify 是 Flask 提供的一个函数,用于将 Python 对象(通常是字典或列表)转换为 JSON 格式的响应。它还会自动设置响应的 Content-Typeapplication/json,确保客户端能够正确解析响应内容。

2. 使用 jsonify 的注意事项

  • 字典和列表jsonify 可以直接处理字典和列表。如果你传递一个字典或列表给 jsonify,它会自动将其转换为 JSON 格式。

  • 其他数据类型:如果你传递其他数据类型(如字符串、整数等),jsonify 会将其包装在一个字典中,然后转换为 JSON 格式。例如,jsonify('Hello, World!') 会返回 {"data": "Hello, World!"}

  • 自定义状态码:你可以在 jsonify 中指定 HTTP 状态码。例如,return jsonify(data), 201 会返回一个状态码为 201 的响应。

3. 手动返回 JSON 响应

虽然 jsonify 是最常用的方式,但你也可以手动返回 JSON 响应。例如:

-- -------------------- ---- -------
---- ----- ------ ------ --------
------ ----

--- - ---------------

-------------------
--- -----------
    ---- - -
        ------- ----- -----
        ------ ---
        ------- ---- -----
    -
    ------ -------------------------- ----------------------------

-- -------- -- -----------
    -------------------

在这个示例中,我们使用 json.dumps 将字典转换为 JSON 字符串,然后使用 Response 对象手动设置 Content-Typeapplication/json。这种方式虽然更灵活,但通常不如 jsonify 方便。

纠错
反馈