Flask アプリに送信されたデータを取得できるようにしたいです。アクセスしようとしましたrequest.data
が、空の文字列です。リクエスト データにアクセスするにはどうすればよいでしょうか?
from flask import request
@app.route('/', methods=['GET', 'POST'])
def parse_request():
data = request.data # data is empty
# need posted data here
この質問の答えから私はこう尋ねましたContent-Type ヘッダーに関係なく、Python Flask で生の POST 本文を取得する次に、解析されたデータではなく生のデータを取得する方法について説明します。
ベストアンサー1
のドキュメントrequest
リクエスト中にオブジェクト ( )で利用可能な属性を記述しますfrom flask import request
。ほとんどの場合、request.data
フォールバックとして使用されるため空になります。
request.data
Flask が処理できない MIME タイプの場合、受信リクエスト データが文字列として含まれます。
request.args
: URLクエリ文字列内のキー/値のペアrequest.form
: 本文、HTML 投稿フォーム、または JSON でエンコードされていない JavaScript リクエスト内のキー/値のペアrequest.files
: 本文内のファイル。Flask はこれを とは別に保持しますform
。HTML フォームでは を使用する必要がありますenctype=multipart/form-data
。そうしないと、ファイルはアップロードされません。request.values
args
:と を組み合わせ、キーが重複する場合はform
優先するargs
request.json
: 解析されたJSONデータ。リクエストにはapplication/json
コンテンツタイプが必要です。request.get_json(force=True)
コンテンツ タイプを無視します。
これらはすべてMultiDict
インスタンス( を除くjson
)。値には以下を使用してアクセスできます。
request.form['name']
: キーが存在することが分かっている場合はインデックスを使用するrequest.form.get('name')
:get
キーが存在しない可能性がある場合に使用しますrequest.form.getlist('name')
:getlist
キーが複数回送信され、値のリストが必要な場合に使用します。get
最初の値のみを返します。