Flask 在WTForms中创建数量可变的表单字段

Flask 在WTForms中创建数量可变的表单字段,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,目前,我正在尝试创建一个表单,用户可以在其中创建闪存卡,并且没有固定数量的闪存卡-您可以添加或删除它们 我尝试使用FormFields的FieldList,其中FormField是闪存卡的表单。但是,我不完全理解它是如何工作的(文档不是很有帮助),并且不能创建数量可变的FormFields 此外,我还尝试过在for循环中循环,并在每次迭代中创建一个新的FormField,但是这样我似乎无法单独访问每个字段的数据(我只获取第一个字段的数据) 如果有人能为这些方法提供解决方案或新方法,我将不胜感激。

目前,我正在尝试创建一个表单,用户可以在其中创建闪存卡,并且没有固定数量的闪存卡-您可以添加或删除它们

我尝试使用
FormFields
FieldList
,其中
FormField
是闪存卡的表单。但是,我不完全理解它是如何工作的(文档不是很有帮助),并且不能创建数量可变的
FormFields

此外,我还尝试过在
for
循环中循环,并在每次迭代中创建一个新的
FormField
,但是这样我似乎无法单独访问每个字段的数据(我只获取第一个字段的数据)


如果有人能为这些方法提供解决方案或新方法,我将不胜感激。

我将假设每张闪存卡都有一个标题和一些内容。在这种情况下最有意义的表单字段类型是WTForms中的
TextField
TextAreaField
。由于您正在使用表单,因此需要继承基本
表单
对象

from flask.ext.wtf import Form
from wtforms import TextField, TextAreaField

class FlashCard(Form):
  title = TextField('Card title:')
  content = TextAreaField('Card content:')
在Flask view函数中调用此函数时:

@app.route('/')
def index():
  my_form = FlashCard()
  if my_form.validate_on_submit:
     # save flash card data here.
  return render_template('index.html', my_form=my_form)
如果我是你,我会用情态词来表示形式。Bootstrap有一个非常容易使用的模式(需要Javascript)。当用户想要添加闪存卡时,另一个重新定向到表单页面的选项

主要的一点是,您可以对所有闪存卡使用相同的表单实例。希望这有帮助

如果您真的需要“动态表单组合”,它是这样的():


我假设每张闪存卡都有一个标题和一些内容。在这种情况下最有意义的表单字段类型是WTForms中的
TextField
TextAreaField
。由于您正在使用表单,因此需要继承基本
表单
对象

from flask.ext.wtf import Form
from wtforms import TextField, TextAreaField

class FlashCard(Form):
  title = TextField('Card title:')
  content = TextAreaField('Card content:')
在Flask view函数中调用此函数时:

@app.route('/')
def index():
  my_form = FlashCard()
  if my_form.validate_on_submit:
     # save flash card data here.
  return render_template('index.html', my_form=my_form)
如果我是你,我会用情态词来表示形式。Bootstrap有一个非常容易使用的模式(需要Javascript)。当用户想要添加闪存卡时,另一个重新定向到表单页面的选项

主要的一点是,您可以对所有闪存卡使用相同的表单实例。希望这有帮助

如果您真的需要“动态表单组合”,它是这样的():