После того, как вы указали значение для CACHE_BACKEND, самым простым способом использования кэша будет кэширование всего сайта. Это означает, что каждая страница, которая не имеет параметров GET или POST, будет помещена в кэш на указанное количество времени при первом обращении к ней.
Для активации этого способа кэширования необходимо добавить django.middleware.cache.CacheMiddleware в параметр MIDDLEWARE_CLASSES, как показано на примере:
MIDDLEWARE_CLASSES = (
'django.middleware.cache.CacheMiddleware',
'django.middleware.common.CommonMiddleware',
)
Замечание
Порядок указания значений в параметре MIDDLEWARE_CLASSES имеет значение. Обратитесь к секции «Порядок в MIDDLEWARE_CLASSES», описанной в этой главе далее.
Затем добавьте следующие обязательные параметры в файл конфигурации Django:
CACHE_MIDDLEWARE_SECONDS: Количество секунд в течении которых страница должна храниться в кэше.
CACHE_MIDDLEWARE_KEY_PREFIX: Если кэш распределён между несколькими сайтами под управлением одной инсталляции Django, назначьте этому параметру имя сайта или любую другую строку, которая будет уникальна для этого экземпляра Django, это поможет избежать коллизии ключей. Можете оставить значение пустым, если вас это не волнует.
Система кэширует каждую страницу, которая не содержит GET или POST параметров. Таким образом, если пользователь запрашивает страницу и передаёт в запросе параметры GET или POST, система не пытается получить закэшированную версию страницы. Если вы намереваетесь использовать данный способ кэширования, следует помнить эту особенность при проектировании своего приложения.
Механизм кэширования поддерживает ещё один параметр — CACHE_MIDDLEWARE_ANONYMOUS_ONLY. Если вы определили этот параметр и назначили ему значение True, то в этом случае механизм будет производить кэширование только анонимных запросов. Такое поведение позволяет просто и эффективно отключить кэширование для любых пользовательских страниц, таких как интерфейс администратора Django. Следует отметить, что если вы используете CACHE_MIDDLEWARE_ANONYMOUS_ONLY, вам следует удостовериться, что вы активировали AuthenticationMiddleware и что оно указано до CacheMiddleware в параметре MIDDLEWARE_CLASSES.
Наконец, следует отметить, что CacheMiddleware
автоматически устанавливает несколько заголовков в каждом
HttpResponse:
Заголовок Last-Modified указывает дату и время когда была запрошена новая (некэшированная) версия страницы.
Заголовок Expires указывает дату и время плюс значение CACHE_MIDDLEWARE_SECONDS до окончания выдачи закэшированной версии страницы.
Заголовок Cache-Control определяет максимальный срок для страницы, относительно параметра CACHE_MIDDLEWARE_SECONDS.
| Пред. | Уровень выше | След. |
| Глава 13. Кэширование | Начало | Кэширование отдельного представления |
0 комментариев | Оставьте комментарий