Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Оглавление

Кэширование отдельного сайта

После того, как вы указали значение для 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.


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1049 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID