Return JSON response from Flask view
As of Flask 1.1.0 a view can directly return a Python dict and Flask will call jsonify
automatically.
@app.route("/summary")def summary(): d = make_summary() return d
If your Flask version is less than 1.1.0 or to return a different JSON-serializable object, import and use jsonify
.
from flask import jsonify@app.route("/summary")def summary(): d = make_summary() return jsonify(d)
jsonify
serializes the data you pass it to JSON. If you want to serialize the data yourself, do what jsonify
does by building a response with status=200
and mimetype='application/json'
.
from flask import json@app.route('/summary')def summary(): data = make_summary() response = app.response_class( response=json.dumps(data), status=200, mimetype='application/json' ) return response
Pass keyword arguments to flask.jsonify
and they will be output as a JSON object.
@app.route('/_get_current_user')def get_current_user(): return jsonify( username=g.user.username, email=g.user.email, id=g.user.id )
{ "username": "admin", "email": "admin@localhost", "id": 42}
If you already have a dict, you can pass it directly as jsonify(d)
.