使用 flask wtforms 提交时验证 get

Validate get when submitting with flask wtforms

我有一个带有验证的表单,例如 required()NumberRange

这是一个搜索功能,所以我使用的是 get 方法。问题是我不能将 form.validate_on_submit() 与 get 一起使用。使用 post 一切都按预期工作,但是使用 get 表单忽略验证,基本上从不在提交时验证。

处理这种情况的最佳方法是什么?

class DocSearch(Form):
    client_number = IntegerField(lazy_gettext(u'Client number'), [Required()])
    submit = SubmitField(lazy_gettext(u'Find'))

<form method="get" class="form" role="form">
    <div class="form-group ">
        {{ render_field(form.client_number) }}
    </div>

    <div class="form-group ">
        {{ render_field(form.submit) }}
    </div>
</form>

validate_on_submit 是调用其他两个方法的便利函数。第一个 is_submitted 检查 POST 和 PUT 请求。第二个 validate 进行实际验证。这就是你需要的。

if form.validate():
    # do stuff here