Ответ
Кеширование шаблонов в Django — это механизм, который сохраняет скомпилированный HTML-код шаблона в памяти, чтобы избежать его повторной компиляции при каждом запросе. Это значительно снижает нагрузку на CPU и ускоряет время ответа сервера, особенно для сложных шаблонов.
Принцип работы:
- При первом запросе Django находит, компилирует и рендерит шаблон.
- Скомпилированный объект шаблона сохраняется в кеш.
- При последующих запросах Django немедленно достает готовый объект из кеша, пропуская этапы поиска и компиляции.
Как включить:
Для активации необходимо в settings.py
обернуть стандартные загрузчики шаблонов в django.template.loaders.cached.Loader
.
# settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
# APP_DIRS: True говорит Django искать шаблоны в директориях приложений
'APP_DIRS': False,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
# Оборачиваем загрузчики в 'cached.Loader'
'loaders': [
('django.template.loaders.cached.Loader', [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
]),
],
},
},
]
Важно: Кеширование загрузчика шаблонов включается только тогда, когда DEBUG = False
. В режиме разработки оно неактивно, чтобы вы сразу видели изменения в файлах шаблонов.