ユーザー入力に基づいてメソッドを実行するWebアプリをセットアップしようとしています。最初のページは画像と画像の量を取得し、それらを使用してメソッドを実行します。次に、ユーザーは次のフォームに移動します。これは、アプリケーション外のタスクを完了したことを確認する確認ボタンです。ただし、確認ボタンを押すと、ユーザーは最初のページにリダイレクトされ、以前に入力されていても、フォームに情報を入力する必要があることが示されます。
@app.route("/", methods=['GET', 'POST'])
def Home():
form = SelectImageForm()
if form.validate_on_submit():
Label_Required = form.ImageLabel.data
Amount_Required = form.Amount.data
Cloud_Transfer(form.ImageLabel.data, form.Amount.data)
flash(f'Searching Labels for {form.ImageLabel.data}!', 'success')
form = SelectXMLConversion()
return Stage2()
return render_template('home.html', title = 'Label Selection', form=form )
@app.route('/stage2', methods=['GET','POST'])
def Stage2():
form = SelectXMLConversion()
if form.validate_on_submit():
return render_template('stage2.html', title ='Label Selection', form=form)
if __name__ == '__main__':
app.run(debug='true')
現時点では、ステージ2ページをリロードするだけであると予想されていますが、最初のページに送り返され、必須フィールドに入力するように求められます。
return Stage2()
代わりにしないでください:
from flask import redirect, url_for
def home():
form = SelectImageForm()
if form.validate_on_submit():
Label_Required = form.ImageLabel.data
Amount_Required = form.Amount.data
Cloud_Transfer(form.ImageLabel.data, form.Amount.data)
flash(f'Searching Labels for {form.ImageLabel.data}!', 'success')
form = SelectXMLConversion()
return redirect(url_for('stage2'))
return render_template('home.html', title = 'Label Selection', form=form )
また、ルート定義は関数である必要があり、とのように小文字である必要がdef home()
ありdef stage2()
ます。私は信じてlabel_required
おりamount_required
、変数であることも意味しています。変数も小文字である必要があります。Pythonでの命名規則を確認することをお勧めします。
最後に、そのままの状態で、stage2()
ルートは失敗します。フォームが検証されない限り、テンプレートは返されません。おそらく、最初にこのルートのフォームに記入してもらいたいと思うでしょう。その場合、あなたreturn
はそのif form.validate_on_submit():
条件の外にいる必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加