现象:
在使用flask编写的web程序提交表单时出现了如下错误提示:
原因:
程序使用了flask_wtf模块的CSRFProtect来保护表单免受CSRF威胁。默认情况下对
所有视图启用了CSRF保护。但是部分模板中没有表单,所以没有添加csrf令牌,从而导致了错误。
解决办法:
在模板中添加一个CSRF令牌,如下所示:
其他方法:
1.设置默认禁用所有的视图CSRF保护。
设置:WTF_CSRF_CHECK_DEFAULT = False
2.对于部分不需要CSRF保护的使用exempt装饰器。如下:
其中csrf是CSRFProtect对象。
说明: 文章首发于fearlazy的博客,若后续文章中发现的错误或者内容补充将只在博客中进行更新。