使用 Flask 和 WTForms 链接表单的问题
Problem with linking forms using Flask and WTForms
我正在尝试设置一个基于用户输入运行方法的网络应用程序。
第一页获取图像和图像数量并使用它们运行一个方法,然后用户将被发送到下一个表单,这是一个确认按钮,确认他们已经完成了应用程序之外的任务。然而,当按下确认按钮时,用户将被重定向到第一页,其中显示他们需要将信息输入到表单中,即使它之前已经填写过
@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
也意味着变量,也应该是小写的。您可能想查看 conventions for naming in Python.
最后,stage2()
路由将失败。除非表单经过验证,否则您不会 return 模板。据推测,您希望人们先在这条路线上填写表格,在这种情况下,您必须在 if form.validate_on_submit():
条件之外有一个 return
。
我正在尝试设置一个基于用户输入运行方法的网络应用程序。 第一页获取图像和图像数量并使用它们运行一个方法,然后用户将被发送到下一个表单,这是一个确认按钮,确认他们已经完成了应用程序之外的任务。然而,当按下确认按钮时,用户将被重定向到第一页,其中显示他们需要将信息输入到表单中,即使它之前已经填写过
@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
也意味着变量,也应该是小写的。您可能想查看 conventions for naming in Python.
最后,stage2()
路由将失败。除非表单经过验证,否则您不会 return 模板。据推测,您希望人们先在这条路线上填写表格,在这种情况下,您必须在 if form.validate_on_submit():
条件之外有一个 return
。