🌏
Flaskの小技:HTMLのPOSTメソッドについて、静的な文字を上手くバックエンド側にSubmitする
本記事の背景
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