我正在尝试建立一个可运行基于用户输入方法的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] 删除。
我来说两句