Flask表单未引发无效令牌的CSRFError

Flask表单未引发无效令牌的CSRFError,flask,csrf,flask-wtforms,Flask,Csrf,Flask Wtforms,国家: 当CSRF验证失败时,它将引发CSRF错误 但我没有得到例外 我使用Flask WTF制作我的表单,如下所示: class MyForm(FlaskForm): ... 在我的处理程序中,我执行以下操作: my_form = MyForm() if my_form.validate_on_submit(): ... 我希望在validate\u on\u submit中引发异常,但是validate\u on\u submit只返回False 请注意,我没有这样做:

国家:

当CSRF验证失败时,它将引发CSRF错误

但我没有得到例外

我使用Flask WTF制作我的表单,如下所示:

class MyForm(FlaskForm):
    ...
在我的处理程序中,我执行以下操作:

my_form = MyForm()
if my_form.validate_on_submit():
    ...
我希望在
validate\u on\u submit
中引发异常,但是
validate\u on\u submit
只返回False

请注意,我没有这样做:

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
因为我的理解是,如果表单依赖于
FlaskForm
,则不需要这样做

我做错了什么?

,似乎只有当你使用它的时候,它才会真正被提升

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)

你提到的模式。它仅由
\u error\u response
引发,其中由
protect
函数调用。相反,例如,当令牌无效时,
validate\u csrf
会引发
ValidationError

您提交的是无效的csrf令牌还是无效的表单?如果提交时
validate\u
返回
False
我猜在没有看到其余代码的情况下,还有一个字段未通过验证。@PGHE,是的,我在提交表单之前编辑了网页,提交了一个无效的CSRF令牌。表单数据在其他方面有效。如果我不编辑CSRF令牌,一切正常。谢谢!我想知道这是故意的还是错误。我将在WTF github页面上发布一个问题。至少应该更新文档。