Flask ビューへのフォーム値の投稿
Flask アプリケーションでは、クライアントが送信した HTML フォームからフォーム値にアクセスするのが難しい場合があります。フォームの入力要素に "name" 属性がありません。
問題:
入力に "name" 属性を指定せずに HTML フォームが送信されると、Flask は空の request.form 辞書を返します。これは、サーバーが送信された値を特定のフォーム フィールドに関連付けることができないために発生します。
解決策:
Flask がフォーム値に正しくアクセスできるようにするには、次の各入力要素がHTML フォームには一意の「name」属性があります。この属性は、送信された値を 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 ビュー内の場合、フォームの入力に「name」属性がないため、request.form ディクショナリは空になります。この問題を修正するには、入力要素に「name」属性を追加します。
<code class="html"><form method="POST"> <input name="my_input" id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
「name」属性を指定すると、Flask は送信された値を適切なフォーム フィールドに関連付けることができます。その後、ビューの request.form ディクショナリを使用してフォーム値にアクセスできます:
<code class="python">@app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints {'my_input': 'value'} print(request.form['my_input']) # prints 'value' return render_template('page.html')</code>
以上が入力要素に「名前」属性がない場合に、Flask ビューでフォーム値にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。