使用 Flask / WTForms 的多部分表单

Multi-part form using Flask / WTForms

我要生成一个包含多个部分的表单 - 想想类似于购物车的工作流程,其中您有多个 "sections"(例如详细信息、账单、付款等)用于一次显示一个表单.

关键细节:

我考虑过的方法:

在 Flask/WTForms 中完成此任务的最佳方法是什么? None 我在上面发布的方法似乎是正确的,我毫不怀疑这是一个相当普遍的要求。

最优雅的解决方案无疑需要一些 javascript,正如您在上一个想法中提到的那样。您可以使用 JS 来隐藏表单的不同部分,并在客户端执行必要的检查 and/or 数据操作,只有在正确并完成时才将其提交到您的 flask 路由。

你说的第一种方法我已经用过了。这是它的样子:

@simple_blueprint.route('/give', methods=['GET', 'POST'])
@simple_blueprint.route('/give/step/<int:step>', methods=['GET', 'POST'])
@login_required
def give(step=0):
    form = GiveForm()
    ...
    return blah blah

这种感觉你说的没错"hacky"。但是,如果路由除了处理表单之外不需要做很多其他事情,它就可以工作。我的路线工作的方式是收集数据,然后向用户询问一堆关于数据的问题。你解释你的情况的方式,需要收集每一步的数据,我真的会推荐 javascript 解决方案。