暂时禁用Django缓存

2024-05-17 16:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在每次签出时禁用Django缓存?

在Django 1.3之前,我可以通过在settings.py导入的settings\local.py中指定CACHE_BACKEND = None来禁用本地开发签出的缓存。SVN忽略了settings_local.py,因此我可以始终确保本地环境没有缓存,而不必担心修改settings.py中的缓存参数。

现在,使用Django 1.3和新的CACHES={…}结构,设置CACHES = NoneCACHES['default']['BACKEND'] = None会导致Django窒息,设置CACHES = {}似乎仍然可以启用基本缓存。


Tags: djangopynonebackenddefaultcache参数settings
3条回答

多个缓存的解决方案,要禁用所有缓存:

if True:
    CACHES = {
        k : {'BACKEND': 'django.core.cache.backends.dummy.DummyCache',}
        for k,v in CACHES.iteritems()
    }

解决方案如果要禁用某些缓存,可能会有帮助:

if True:
    disable_names = [ 'cache_name' ]
    for name in disable_names:
        CACHES[name] = {'BACKEND' : 'django.core.cache.backends.dummy.DummyCache',}

我在我的设置中使用这个,所以如果我想测试已部署的缓存(在本例中是memcache)的使用情况,它会更灵活一些

TEST_MEMCACHE = False
if not DEBUG or TEST_MEMCACHE:
    CACHES = {
        'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
}

https://docs.djangoproject.com/en/3.0/topics/cache/#dummy-caching-for-development

虚拟缓存(用于开发)-这实际上并不缓存,因此您可以在开发端使用它。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    }
}

相关问题 更多 >