Кэширование на уровне сайта Django

Опубликовал: Воскресенье, Февраль 12, 2012 в категории Django | Пока нет комментариев

Проще всего кэшировать сайт целиком. Для этого в параметр

MIDDLEWARE_CLASSES необходимо добавить строки ‘django.middleware.cache. UpdateCacheMiddleware’ и ‘django.middleware.cache.FetchFromCacheMiddleware’, например:

MIDDLEWARE_CLASSES = (

‘django.middleware.cache.UpdateCacheMiddleware’. ‘ django. middleware.common.CommonMiddleware’. ‘django.middleware.cache.FetchFromCacheMiddleware’.

)

Примечание ———————————————————————————-

Это не опечатка: класс «update» должен быть первым, а класс «fetch» последним. Причина нетривиальна, интересующимся рекомендуем прочитать раздел «Порядок строк в MIDDLEWARE_CLASSES» в конце главы.

Затем включите в файл с настройками следующие обязательные параметры:

• CACHE_MIDDLEWARE_SECONDS: сколько секунд страница должна храниться в кэше.

•      CACHE_MIDDLEWARE_KEY_PREFIX: если на одном сервере под управлением одной инсталляции Django работает несколько сайтов с общим кэшем, то укажите в этом параметре имя сайта или еще какую-нибудь строку, уникальную для данного экземпляра Django, чтобы предотвратить коллизии ключей. Если это в вашем случае не важно, задайте пустую строку.

Кэшированию подвергаются все страницы, для которых в запросе GET или POST нет параметров. Если при этом необязательный параметр САСНЕ_ MIDDLEWARE_AN0NYM0US_0NLY имеет значение True, то кэшируются только запросы от анонимных посетителей. Это простой и эффективный способ отключить кэширование персонализированных страниц (в том числе страниц административного интерфейса). Отметим, что при использовании параметра CACHE_MIDDLEWARE_AN0NYM0US_0NLY необходимо активировать также дополнительный процессор AuthenticationMiddleware.

Кроме того, дополнительные процессоры кэширования автоматически включают в каждый объект HttpResponse следующие заголовки:

•      Заголовок Last-Modified, содержащий дату и время запроса актуальной (не кэшированной) версии страницы.

•      Заголовок Expires, содержащий текущие дату и время плюс значение параметра CACHE_MIDDLEWARE_SECONDS.

•      Заголовок Cache-Control, содержащий максимальный срок хранения страницы, также вычисляемый на основе параметра САСНЕ_ MIDDLEWARE_SECONDS.

Примечание —————————————————————————-

О дополнительных процессорах см. главу 17.

Если некоторое представление самостоятельно устанавливает срок хранения (то есть значение параметра тах-аде в заголовке Cache-Control), то страница кэшируется на этот срок, а не на CACHE_MIDDLEWARE_SECONDS секунд. Декораторы из модуля django.views.decorators.cache позволяют без труда изменить срок хранения (декоратор cache_control) или вообще отключить кэширование представления (декоратор never_cache). Дополнительные сведения об этих декораторах см. в разделе «Управление кэшем: другие заголовки».

Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.

Add to Social Bookmarks
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • BobrDobr
  • Mr. Wong
  • Yandex.Bookmarks
  • Text 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Pisali
  • SMI 2
  • Moe Mesto
  • 100 Zakladok
  • Vaau!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>