当前位置: 首页 > 面试题库 >

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

万志专
2023-03-14
问题内容

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

我正在使用wtforms生成表单。

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

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


问题答案:

我一直在使用两个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


 类似资料:
  • 问题内容: 我想创建包含在多个html页面中的通用页眉和页脚页面。 我想使用JavaScript。有没有办法只使用html和JavaScript来做到这一点? 我想在另一个html页面中加载页眉和页脚页面。 问题答案: 您可以使用jquery完成此操作。 将此代码放在 并将此代码放在和中,与 现在,当您访问时,您应该可以单击链接标记。

  • 问题内容: 我有一个动态网页,该网页应处理两种形式:登录表单和注册表单。我正在使用WTForms处理这两种形式,但是由于将两种形式都呈现到同一页面上,因此使它无法正常工作。 以下是我的网页登录表单的代码: PYTHON: HTML: 以下是我的网页注册表格的代码: PYTHON: HTML: 继续加载网页时出现以下错误: 据我了解,表单之间存在冲突,因为根据追溯: 返回以下错误: 当脚本看到: 但

  • 问题内容: 请在问题上需要您的帮助。我的主页上有两个表格,我希望用户在不同的时间填写和提交。我的问题是,我只希望对它们两个都有一个处理页面。通常我可以在单独的页面中执行此操作。但我想知道是否可以在同一页面上进行。 好吧..如果我在操作页面上提交表单A,则不会为表单B的变量提供未定义的索引,该索引尚未提交,当然也不建议使用GET。 感谢您的时间和耐心等待。 问题答案: 这样做并非完全没有听说过。通常

  • 如果您不得不跟浏览器提交的表单数据打交道,视图函数里的代码将会很快变得 难以阅读。有不少的代码库被开发用来简化这个过程的操作。其中一个就是 WTForms , 这也是我们今天主要讨论的。如果您发现您自己陷入处理很多表单的境地,那您也许 应该尝试一下他。 要使用 WTForms ,您需要先将您的表单定义为类。我建议您将应用分割为多个模块 (大型应用) ,这样的话您仅需为表单添加一个独立的模块。 挖掘

  • 问题内容: 我阅读了Flask-WTF极其简化的Wiki,但对我能用它做些什么却不太了解。我的印象是部分现在只能看起来像 但是我真的很想使用实例化来设置样式: 我在哪里能适应并进入? 编辑:让我进一步详细说明我的答案:例如,我想要类似(很好的弹出式日历,允许用户选择日期)之类的东西,这应该在中,但现在我要替换整行与…我失去了编辑课程的特权,而没有这样做。 问题答案: 可以使用将在呈现的输入上设置的

  • 问题内容: 据我所知,“ …”表示下面代码段中数组的长度。 另一方面,正如我猜想的那样,“ …”表示将以下代码段中的切片拆分为int的参数。我对此不太确定。 现在,两种含义的差异使我很难理解“ …”是什么。 问题答案: 您已经注意到Go中的两种情况。实际上,有3个: 在编译时 评估为[3] int {1,2,3} 解压缩作为函数的参数。这与您错过的一个(可变参数的定义)相匹配: 现在是另一个问题(