Python 验证动态内置于flask中的表单

Python 验证动态内置于flask中的表单,python,flask,wtforms,flask-wtforms,Python,Flask,Wtforms,Flask Wtforms,我在表单中发送数据时遇到问题,但情况并非如此。在视图中,我构建了一种动态形式的协议,在代码中有一些更复杂的模型,虽然简单得多,但思想是一样的。 当我填写表格时,这将永远不会被处理。我真的不知道可能是什么问题 代码: 谢谢你的回答我想你需要检查一些东西。您试图验证的形式是什么?在您的代码示例中,我没有看到验证器的使用。比如说, setattr(F,'funcion1', StringField(label='fun1', [validators.Length(max=10)])) 这应该添加一个

我在表单中发送数据时遇到问题,但情况并非如此。在视图中,我构建了一种动态形式的协议,在代码中有一些更复杂的模型,虽然简单得多,但思想是一样的。 当我填写表格时,这将永远不会被处理。我真的不知道可能是什么问题

代码:


谢谢你的回答

我想你需要检查一些东西。您试图验证的形式是什么?在您的代码示例中,我没有看到验证器的使用。比如说,

setattr(F,'funcion1', StringField(label='fun1', [validators.Length(max=10)]))
这应该添加一个验证器来验证输入的字符不超过10个。您可以向验证器列表中添加任何您想要的验证器

此外,如果您正在使用CSRF保护和POST,则应将{hidden_tag}
{{{formulario.CSRF_token}}`作为表单中的第一个元素 模板中的表单应如下所示:

<form action="{{url_for('some_view'}}">
{{hidden_tag}}
<!-- rest of form elements --> 
</form>

我想有几件事你需要检查一下。您试图验证的形式是什么?在您的代码示例中,我没有看到验证器的使用。比如说,

setattr(F,'funcion1', StringField(label='fun1', [validators.Length(max=10)]))
这应该添加一个验证器来验证输入的字符不超过10个。您可以向验证器列表中添加任何您想要的验证器

此外,如果您正在使用CSRF保护和POST,则应将{hidden_tag}
{{{formulario.CSRF_token}}`作为表单中的第一个元素 模板中的表单应如下所示:

<form action="{{url_for('some_view'}}">
{{hidden_tag}}
<!-- rest of form elements --> 
</form>

我指的是请求表单的处理,而不是表单字段的验证。感谢您的回复。请尝试在验证之前打印form.errors,并查看您会遇到哪些错误。我怀疑您没有使用CSRF令牌,这导致
validate\u on\u submit()
返回false<代码>打印表单。错误应验证这一点。如果是这种情况,那么在模板的表单顶部,添加
{{formulario.csrf_token}
只是为了更正我的评论,而不是
打印表单。错误
使用
打印表单。错误
我指的是请求表单的处理,而不是表单字段的验证。感谢您的回复。请尝试在验证之前打印form.errors,并查看您会遇到哪些错误。我怀疑您没有使用CSRF令牌,这导致
validate\u on\u submit()
返回false<代码>打印表单。错误
应验证这一点。如果是这种情况,那么在模板的表单顶部添加
{{{formulario.csrf_token}
只是为了更正我的评论,而不是
打印表单。错误
使用
打印表单。错误