web-dev-qa-db-fra.com

Flacon: envoi de données et de code d'état via un objet Response

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
14
Febin Peter

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
39
Nabin

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.

6