WTF_CSRF_ENABLED=False 不起作用
时间: 2023-06-28 09:08:54 浏览: 55
如果 `WTF_CSRF_ENABLED=False` 不起作用,有几个可能的原因:
1. 在配置文件中设置了 `WTF_CSRF_ENABLED=True`,这会覆盖在代码中设置的 `WTF_CSRF_ENABLED=False`。请检查配置文件并将其设置为 `WTF_CSRF_ENABLED=False`。
2. 正在使用 Flask-WTF 的 `CSRFProtect` 中间件,它会覆盖 `WTF_CSRF_ENABLED` 的设置。要禁用 CSRF 保护,请在应用程序中添加以下代码:
```python
from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
csrf.exempt(your_view_function)
```
这将使 `your_view_function` 豁免 CSRF 保护。
3. 相关的表单没有设置 CSRF 令牌。要为表单设置 CSRF 令牌,请在表单类中添加以下代码:
```python
from flask_wtf import FlaskForm
from flask_wtf.csrf import CSRFTokenField
class MyForm(FlaskForm):
csrf_token = CSRFTokenField()
# 其他表单字段
```
然后在表单渲染时,将令牌字段包含在 HTML 中:
```html
<form method="POST" action="/">
{{ form.csrf_token }}
<!-- 其他表单字段 -->
</form>
```
这将为表单添加 CSRF 令牌,从而启用 CSRF 保护。