烧瓶表单不会引发无效令牌的CSRFError

时间:2019-10-17 20:18:37

标签: flask csrf flask-wtforms

Flask-WTF docs状态:

  

CSRF验证失败时,将引发CSRFError。

但我没有收到异常。

我在这样的表单中使用Flask-WTF:

class MyForm(FlaskForm):
    ...

在我的处理程序中,我这样做:

my_form = MyForm()
if my_form.validate_on_submit():
    ...

我希望在validate_on_submit内部引发异常,但是validate_on_submit只会返回False。

请注意,我没有这样做:

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

因为我的理解是,如果您的表格来自FlaskForm,则不需要。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

Searching through the flask-wtf repo for CSRFError,如果您确实使用过

,似乎只有它才真正被提出
from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
您提到的

模式。它仅由_error_response函数调用的csrf.py中的protect引发。相反,例如,当令牌无效时,validate_csrf会引发ValidationError