我在使用路径
中的表单中获取数据时遇到问题forms.py
class Calculator(Form):
amount = IntegerField('Amount')
weight = IntegerField('Weight')
class Program(Form):
cycles = IntegerField('Cycles')
volume = FormField(Calculator)
app.py
@app.route('/', methods=('GET', 'POST'))
def index():
form = forms.Program()
if form.validate_on_submit():
values = models.Progression(
cycles=form.cycles.data,
amount=form.amount.data,
weight=form.weight.data
)
return render_template('index.html', form=form, values=values)
cycles
的数据很好,但我不确定如何在我的路由中访问封装表单的语法。文档说FormField
将返回所附表单的数据字典,但我似乎无法弄清楚如何获取并将其放入变量中。
答案 0 :(得分:2)
我能够使用
获取我需要的数据 amount=form.volume.amount.data,
weight=form.volume.weight.data
真正的问题来自于我使用FormField
时表单未验证的事实。我应该先检查一下菜鸟错误。
我必须通过从flask_wtf
导入并使用CsrfProtect(app)
答案 1 :(得分:0)
问题是表单数据不是Calculator
类的属性。数据以volume
属性的字典形式发送。
使用:print form.volume.data
(我建议您注释掉values
对象并使用print语句
输出应为:{'amount': foo, 'weight': bar}
感谢您教我一些东西!我从来不知道FormField
。