一尘不染

使用flask和WTForms在单个页面中包含多种表单

flask

我在同一页面上有多种形式,可以将发布请求发送到flask中的同一处理程序。

我正在使用wtforms生成表单。

确定提交哪种表格的最佳方法是什么?

我目前正在使用action="?form=oneform"。我认为应该有一些更好的方法来实现相同目标?


阅读 491

收藏
2020-04-05

共1个答案

一尘不染

我一直在使用两个flask片段的组合。第一个向表单添加前缀,然后使用validate_on_submit()检查前缀。我还使用LouisRoché的模板来确定在表单中按下了哪些按钮。

To quote Dan Jacob:

例:

form1 = FormA(prefix="form1")
form2 = FormB(prefix="form2")
form3 = FormC(prefix="form3")

然后,添加一个隐藏字段(或仅检查提交字段):

if form1.validate_on_submit() and form1.submit.data:

To quote Louis Roché’s:

我的模板中有:

<input type="submit" name="btn" value="Save">
<input type="submit" name="btn" value="Cancel">

为了弄清楚服务器端通过了哪个按钮,我在views.py文件中有:

if request.form['btn'] == 'Save':
    something0
else:
    something1
2020-04-05