Flask で送信されたフォーム値を取得する方法: request.form が空なのはなぜですか?

DDD
リリース: 2024-10-30 03:53:02
オリジナル
689 人が閲覧しました

How to Retrieve Submitted Form Values in Flask: Why is request.form Empty?

Flask でのフォーム値の受け渡しとアクセス

Web 機能を開発する場合、フォーム送信の処理は非常に重要です。 Flask でこのプロセスを容易にするために、送信されたフォーム値を取得する際に問題が発生する可能性があります。この記事は、HTML フォームから値を送信し、Flask ビュー内で値にアクセスする方法を理解することに重点を置いています。

問題ステートメント

次の HTML フォームを考えてみましょう:

<code class="html"><form method="POST">
  <input id="my_input" type="text" value="{{ email }}">
  <input id="my_submit" type="submit" value="Submit">
</form></code>
ログイン後にコピー

そして対応する Flask ルート:

<code class="python">@app.route('/page', methods=['POST', 'GET'])
def get_page():
    if request.method == 'POST':
        print(request.form)  # prints ImmutableMultiDict([])
        print(request.form['my_input'])  # raises 400 error
    return render_template('page.html')</code>
ログイン後にコピー

フォームを送信するときに、request.form が空であることに気づくかもしれません。 my_input の値を直接取得しようとすると、400 エラーが発生します。

解決策

問題の核心は、入力フィールドに name 属性がないことです。 Flask がフォームを適切に処理するには、各入力に request.form 内の目的のキーに対応する name 属性が必要です。この場合、次の変更により問題が解決されるはずです:

<code class="html"><input name="my_input" id="my_input" type="text" value="{{ email }}"></code>
ログイン後にコピー

name 属性を追加すると、入力値は「my_input」のキーでサーバーに送信されます。その結果、Flask ビュー内の値をシームレスに取得できます。

以上がFlask で送信されたフォーム値を取得する方法: request.form が空なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート