Flask表单未引发无效令牌的CSRFError
国家: 当CSRF验证失败时,它将引发CSRF错误 但我没有得到例外 我使用Flask WTF制作我的表单,如下所示: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 请注意,我没有这样做:
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页面上发布一个问题。至少应该更新文档。