Временное отключение кеширования Django - PullRequest
24 голосов
/ 30 сентября 2011

Как отключить кэширование Django для каждой проверки?

Еще до Django 1.3 я мог отключить кэширование для своей локальной проверки разработки, указав CACHE_BACKEND = None в файле settings_local.py, импортированном settings.py. Файл settings_local.py был проигнорирован SVN, поэтому я всегда мог убедиться, что моя локальная среда не кэшируется, и при этом не нужно беспокоиться об изменении параметров кэша в settings.py.

Теперь, с Django 1.3 и новой структурой CACHES = {...}, установка CACHES = None или CACHES['default']['BACKEND'] = None заставляет Django задыхаться, а установка CACHES = {} все еще, кажется, включает базовое кэширование.

Ответы [ 4 ]

56 голосов
/ 30 сентября 2011

https://docs.djangoproject.com/en/1.3/topics/cache/

Dummy Caching (для разработки) - на самом деле это не кэширование, поэтому вы можете использовать его для разработки.

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    }
}
9 голосов
/ 29 декабря 2013

Я использую это в своих настройках, так что это немного более гибко, в этом случае я хочу проверить использование развернутого кэширования (в данном случае 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',
        }
}
4 голосов
/ 04 мая 2015

Решение для нескольких кэшей, и вы хотите отключить все из них:

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',}
2 голосов
/ 17 апреля 2014

Для этого вы можете использовать "фиктивный" кеш-сервер. Django поставляется с «фиктивным» кешем, который на самом деле не кешируется - он просто реализует интерфейс кеша, ничего не делая.

Вот форматы старого стиля и нового стиля .

  1. старый стиль

    Чтобы активировать фиктивное кэширование, установите CACHE_BACKEND следующим образом:

    CACHE_BACKEND = 'dummy://'

  2. новый стиль

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...