前提
Flaskで複数ページにまたがる(回答により分岐する)フォームを作成しています。
最終的に、各ページの回答をまとめてから、処理する関数に渡す予定です。
###困っていること
1ページ目のフォームから、「次へ」ボタンを押した際に、
最初のフォームを表示していたのと同じ関数に引数を渡して場合分けして処理を行いたいと思い、
formタグのaction属性に、url_forで関数と引数を指定したのですが、
送信後も引数が変更されない(デフォルト値のまま)ため、
場合分けがうまくいかず困っています。
PythonもFlaskも初心者のため、根本的に間違っている可能性があるのですが、
検索しても見つけられず…。
よろしくお願いいたします。
該当のソースコード
app.py
python
1@app.route("/", methods=('GET', 'POST')) 2def form(step='start'): 3 if request.method == 'POST': 4 submitted_data = request.form 5 6 if step == 'pre_check': 7 session.permanent = True 8 pre_check_data = request.form 9 session['pre_check_data'] = pre_check_data 10 if pre_check_data.get('hoge_test'): 11 return render_template('hoge.html') 12 else: 13 return render_template('hage.html') 14 else: 15 print(step) 16 return render_template('test.html') 17 18 elif step == 'start': 19 return render_template('form.html')
form.html
html
1<form action="{{ url_for('form', step='pre_check') }}" method="post"> 2 # 略 3 <input type="checkbox" name="hoge_test" id="hoge_test" value="1">hoge基準OK(テスト用) 4 <hr> 5 <input type="submit" value="次へ"> 6</form>
発生するエラー
form.htmlのフォームに記入して、「次へ」を押しても、
引数stepがpre_checkにならず、startのままで、
コンソールにstartと表示され、test.htmlが表示されてしまいます。
補足情報(FW/ツールのバージョンなど)
Python 3.10.4
Flask 2.1.2
-----2022/08/29 10:31追記
「次へ」を押した後の遷移先は
http://127.0.0.1:5000/?step=pre_check
となっているので、全く引数が渡っていないわけではないと思うのですが…。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/30 02:05