gpt4 book ai didi

python - 使用 Flask/WTForms 的多部分表单

转载 作者:行者123 更新时间:2023-12-03 15:46:54 25 4
gpt4 key购买 nike

我有一个要生成的多部分表单 - 考虑类似于购物车的工作流程,其中您有多个“部分”(例如详细信息、账单、付款等),一个表单一次显示一个。

关键细节:

  • 我有 3 个部分的表单
  • 这些部分必须按顺序完成,第 2 部分依赖于来自第 1 部分的信息
  • 除非此人完成完整流程(第 1、2 和 3 节),否则表单数据是无用的(例如将被丢弃)。

  • 我考虑过的方法:
  • 使用一条路线 def并在 request.args 中存储一个值这告诉我当时我在哪个“部分”render_template不同的表单模板取决于部分。这感觉很hacky...
  • 每个部分都有不同的路线和 View 。这感觉不对,我不得不阻止人们通过 URL
  • 直接进入第 2 步。
  • 将所有部分放在一个表单上,使用 Javascript 隐藏一个表单的部分并以这种方式在部分之间移动

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

    最佳答案

    正如您在上一个想法中提到的,最优雅的解决方案无疑需要一些 javascript。您可以使用 JS 隐藏表单的不同部分,并在客户端执行必要的检查和/或数据操作,并且仅在正确并完成将其提交到您的 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 解决方案。

    关于python - 使用 Flask/WTForms 的多部分表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33769478/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com