APIを介して相互作用するマイクロサービスをFlaskで記述しています。
POSTリクエストを作成すると、Responseオブジェクトを介してステータスコードを返すことができます。この関数から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
jsonify() from flask package。このメソッドは任意のシリアル化可能なデータ型を取ります(たとえば、辞書data次の例では)。
from flask import jsonify
@app.route('/login', methods=['POST'])
def login():
data = {'name': 'nabin khadka'}
return jsonify(data)
ステータスコードを返すには、以下のようにリターンの最後にそれを返すだけです:
return jsonify(data), 200
次のように、応答にデータを追加できます。
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
応答データのコンテンツタイプは、mimetypeパラメーターによって定義されます。