J'écris des microservices en Flask qui interagissent entre eux via l'API.
En effectuant une demande POST, je peux renvoyer le code d'état via l'objet Response. Existe-t-il un moyen de renvoyer les données de cette fonction en JSON?
from flask import Flask, Response
@app.route('/login', methods=['POST'])
def login():
# Set the status code
response = Response(status=200)
# How can I return a JSON in my response object as {'username': 'febin'} ?
return response
Utilisez simplement jsonify () from flask package. Cette méthode prend tout type de données sérialisable (par exemple, j'ai utilisé des données de dictionnaire ) dans l'exemple suivant).
from flask import jsonify
@app.route('/login', methods=['POST'])
def login():
data = {'name': 'nabin khadka'}
return jsonify(data)
Pour renvoyer un code d'état , renvoyez-le simplement à la fin du retour comme ci-dessous:
return jsonify(data), 200
Vous pouvez ajouter les données à la réponse comme ceci:
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
Le type de contenu des données de réponse est défini par le paramètre mimetype.