[Python] FlaskビューからJSONレスポンスを返します



Answers

jsonifyは、JSONに渡すデータをjsonify化します。 データを自分でシリアル化する場合は、 status=200mimetype='application/json'応答をjsonifyして、 jsonify行いstatus=200

from flask import json

@app.route('/summary')
def summary():
    data = make_summary()
    response = app.response_class(
        response=json.dumps(data),
        status=200,
        mimetype='application/json'
    )
    return response
Question

私はパンダとのCSVファイルを分析し、要約情報付きの辞書を作成する機能を持っています。 私はFlaskビューからの応答として結果を返したいと思います。 JSONレスポンスを返すにはどうすればよいですか?

@app.route("/summary")
def summary():
    d = make_summary()
    # send it back as json






ユーザーがアップロードしたファイルを分析する場合は、Flask quickstartユーザーからファイルを取得してアクセスする方法を示します。 request.filesからファイルを取得し、サマリー関数に渡します。

from flask import request, jsonify
from werkzeug import secure_filename

@app.route('/summary', methods=['GET', 'POST'])
def summary():
    if request.method == 'POST':
        csv = request.files['data']
        return jsonify(
            summary=make_summary(csv),
            csv_name=secure_filename(csv.filename)
        )

    return render_template('submit_data.html')

request.files'data'キーをHTMLフォームに入力したファイルの名前に置き換えます。




from flask import json
from flask import Response

@app.route('/summary')
def summary():
    data = make_summary()

    response = Response(
        response=json.dumps(data),
        status=200,
        mimetype='application/json'
    )

    return response





Links