flask项目,单元测试,WTF_CSRF_ENABLED=False 不起效果
时间: 2023-08-23 08:05:55 浏览: 179
在 Flask 中,WTF_CSRF_ENABLED 是一个 Flask-WTF 扩展提供的选项,它用于启用或禁用 CSRF 保护。当设置为 False 时,应用程序应该不会执行 CSRF 检查。如果您的应用程序已经正确设置了 Flask-WTF 和 CSRF 保护,但在设置WTF_CSRF_ENABLED=False 后仍然无法禁用 CSRF 保护,则可能是因为您的测试代码中的设置被覆盖了。
请确保测试代码中的设置正确,并且没有被其他设置覆盖。如果您使用的是 Flask 自带的测试客户端,可以在测试代码中使用 app.test_client() 来访问应用程序,并使用 app.config 来设置配置选项,例如:
```python
def setUp(self):
app.config['WTF_CSRF_ENABLED'] = False
self.client = app.test_client()
```
如果您使用的是 Flask-Testing 扩展进行测试,则可以使用其提供的 assert_template_used 方法来检查模板是否正确渲染,例如:
```python
def test_index_page(self):
response = self.client.get('/')
self.assert_template_used('index.html')
```
请注意,如果您使用了其他的 Flask 扩展或中间件,可能会对 CSRF 保护产生影响。在这种情况下,请查看扩展或中间件的文档,以了解如何正确设置 CSRF 保护。
阅读全文