Sending JSON and status code with a Flask response [duplicate]
Use flask.jsonify()
. This method takes any serializable data type. For example I have used a dictionary data
in the following example.
from flask import jsonify@app.route('/login', methods=['POST'])def login(): data = {'name': 'nabin khadka'} return jsonify(data)
To return a status code, return a tuple of the response and code:
return jsonify(data), 200
Note that 200 is the default status code, so it's not necessary to specify that code.
UPDATE
As of Flask 1.1, the return statement will automatically jsonify
a dictionary in the first return value. You can return the data directly:
return data
You can also return it with a status code:
return data, 200
You can append the data to the response like this:
from flask import Flask, json@app.route('/login', methods=['POST'])def login(): data = {"some_key":"some_value"} # Your data in JSON-serializable type response = app.response_class(response=json.dumps(data), status=200, mimetype='application/json') return response
The response data content type is defined by mimetype parameter.