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
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
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.