wake-up-neo.com

Flasche: Senden von Daten und Statuscode über ein Antwortobjekt

Ich schreibe Microservices in Flask, die über API miteinander interagieren.

Bei einer Anforderung POST kann ich den Statuscode über das Response-Objekt zurückgeben. Kann ich auf irgendeine Weise Daten von dieser Funktion als JSON zurückgeben?

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

Verwenden Sie einfach jsonify () from flask package. Diese Methode verwendet einen beliebigen serialisierbaren Datentyp (zum Beispiel habe ich Dictionary-Daten verwendet im folgenden Beispiel).

from flask import jsonify

@app.route('/login', methods=['POST'])
def login():
    data = {'name': 'nabin khadka'}
    return jsonify(data)

Um einen Statuscode zurückzugeben, geben Sie ihn einfach am Ende der Rückgabe wie folgt zurück:

return jsonify(data), 200
39
Nabin

Sie können die Daten wie folgt an die Antwort anhängen:

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

Der Inhaltstyp der Antwortdaten wird durch den Parameter mimetype definiert.