我正在使用 Django 的每个视图 @cache_page
装饰器,并为每个视图设置了不同的 key_prefix
。
我之前删除了缓存:
from django.core.cache import cache
cache.clear()
但是,如果我只想删除包含特定 key_prefix
的密钥怎么办?我显然可以通过连接到数据库并使用原始 sql 删除来做到这一点,但我想知道是否可以使用“纯”Django 来完成?
我使用的是数据库缓存,而不是内存缓存。
我正在使用 Django 1.11 和 Python 3.6
原文由 Wessi 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如 @e4c5 提到的缓存用于快速的东西,你应该使用 redis 来做同样的事情。但是由于您的问题是关于数据库的,所以我会回答相同的问题。
在 Django 中没有现成的功能可以做到这一点。但是 python 最好的部分是你可以轻松地使用猴子路径来添加新功能。下面是我创建的测试请求
要获得
prefix
功能,您需要在某个地方添加以下补丁代码。我用settings.py
这样