Flask 学习-6. jsonify()返回JSON格式数据

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 学习-6. jsonify()返回JSON格式数据相关的知识,希望对你有一定的参考价值。

前言

JSON 格式的响应是常见的,用 Flask 写这样的 API 是很容易上手的。如果从视图 返回一个 dict ,那么它会被转换为一个 JSON 响应。

返回JSON 格式

如果从视图 返回一个 dict ,那么它会被转换为一个 JSON 响应。

from flask import Flask
from flask import render_template
from flask import request
app = Flask(__name__)


@app.route('/json', methods=['GET'])
def json_demo():
    user = request.args.get('user')
    return 
        "username": user,
        "email": "111@qq.com"
    


if __name__ == '__main__':
    app.run()

启动后访问http://127.0.0.1:5000/json?user=yoyo
运行返回结果

HTTP/1.1 200 OK
Server: Werkzeug/2.2.2 Python/3.8.5
Date: Mon, 22 Aug 2022 01:52:40 GMT
Content-Type: application/json
Content-Length: 41
Connection: close

"email":"111@qq.com","username":"yoyo"

当返回的是dict 字典格式的时候,返回内容自动转换成Content-Type: application/json 格式

jsonify() 函数

如果 dict 还不能满足需求,还需要创建其他类型的 JSON 格式响应,可以使用 jsonify() 函数。该函数会序列化任何支持的 JSON 数据类型。

from flask import Flask
from flask import render_template
from flask import request
from flask import jsonify
app = Flask(__name__)


@app.route('/jsonfy')
def get_current_user():
    return jsonify(username='yoyo',
                   email='123@qq.com',
                   id=22)


if __name__ == '__main__':
    app.run()

访问/jsonfy接口返回内容

HTTP/1.1 200 OK
Server: Werkzeug/2.2.2 Python/3.8.5
Date: Mon, 22 Aug 2022 02:03:53 GMT
Content-Type: application/json
Content-Length: 49
Connection: close

"email":"123@qq.com","id":22,"username":"yoyo"

jsonify() 函数会序列化任何支持的 JSON 数据类型。

以上是关于Flask 学习-6. jsonify()返回JSON格式数据的主要内容,如果未能解决你的问题,请参考以下文章

Flask 学习-8. jsonify返回中文没正常显示问题

Flask 中字典数据返回(jsonify)

Flask 学习-7. make_response() 自定义响应内容

为啥flask的jsonify方法很慢?

如何在 Flask 中“jsonify”一个列表? [复制]

在flask中使用jsonify和json.dumps的区别