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 サイトの他の関連記事を参照してください。