🌏

Flaskの小技:HTMLのPOSTメソッドについて、静的な文字を上手くバックエンド側にSubmitする

2025/02/03に公開

本記事の背景

HTMLでPOSTを実装する場合、<input>タグを使うのだが、静的な文字をPOST実行する場合、わざわざ入力させるのも、面倒なので、単に文字列をバックエンドに引き渡したいが、調べても事例がないので、本記事は、ちょっとした工夫をすることでうまくできたので、紹介する。

問題点

以下のようなHTMLがあり、{{ hogehoge }}をバックエンド側に引き渡したい。

 <form action="/confirm" method="post">
  <h3>{{ hogehoe }} </h3>
  <button type="submit">送信</button>
 </form>

上記の場合、<input>タグがないため、{{ hogehoge }}をpostできない。

解決法

以下のように<input>タグにtype="hidden"にすることで、Flaskで受け取れるようになる

 <form action="/confirm" method="post">
    <input type="hidden" name="key" value='{{ hogehoge }}'>
  <button type="submit">送信</button>
 </form>
@app.route('/confirm', methods=['GET','POST'])
def form():
    if request.method == 'POST':
        val = request.form.get('key')
            return jsonify({"result": val})

Discussion