Flaskリクエストで受信したデータを取得する 質問する

Flaskリクエストで受信したデータを取得する 質問する

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.dataFlask が処理できない MIME タイプの場合、受信リクエスト データが文字列として含まれます。

  • request.args: URLクエリ文字列内のキー/値のペア
  • request.form: 本文、HTML 投稿フォーム、または JSON でエンコードされていない JavaScript リクエスト内のキー/値のペア
  • request.files: 本文内のファイル。Flask はこれを とは別に保持しますform。HTML フォームでは を使用する必要がありますenctype=multipart/form-data。そうしないと、ファイルはアップロードされません。
  • request.valuesargs:と を組み合わせ、キーが重複する場合は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最初の値のみを返します。

おすすめ記事