Кэширование фрагментов шаблонов
Кэшируйте только ресурсоёмкие части страницы
«Кэширование фрагментов шаблонов» — бесплатный урок Django Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.
Кэширование отдельной части
Часто медленно формируется лишь часть страницы. Кэширование фрагментов позволяет сохранить один блок, пока остальная часть каждый раз создаётся заново.
Загрузка тега кэша
Кэширование фрагментов реализовано в библиотеке тегов шаблонов, поэтому начните шаблон с load cache, чтобы сделать её доступной.
{% load cache %}Блок cache
Оберните медленную разметку в блок cache. Django отрендерит её один раз, сохранит HTML и будет повторно использовать при следующих запросах.
{% cache 500 sidebar %}
...expensive sidebar...
{% endcache %}Сначала укажите время ожидания
Первый аргумент — время ожидания в секундах. После его истечения следующий рендеринг заново создаст фрагмент и сохранит его в кэше.
Дайте фрагменту имя
Второй аргумент — это имя фрагмента. Django объединяет его с дополнительными аргументами, формируя уникальный ключ кэша.
Варианты фрагмента
Добавьте после имени переменные, чтобы фрагмент мог меняться для разных пользователей или объектов; для каждого отдельного значения будет сохранена своя копия.
{% cache 500 sidebar request.user.id %}
...per-user sidebar...
{% endcache %}Каждый вариант хранится отдельно
Каждая комбинация аргументов vary получает собственный ключ, поэтому пользователь 1 и пользователь 2 видят свои кэшированные копии.
Используйте определённый кэш
Укажите для фрагмента именованный кэш с помощью using, если хотите хранить фрагменты страниц отдельно от других кэшированных данных.
{% cache 500 sidebar using="fragments" %}Отлично подходит для общих виджетов
Кэширование фрагментов особенно полезно для общих виджетов, например панели навигации или списка популярных публикаций, одинаковых для многих посетителей.
Оставляйте динамические части снаружи
Оставляйте за пределами блока кэша всё, что должно оставаться актуальным, например приветствие с именем пользователя, чтобы оно никогда не устаревало.
Проще, чем кэширование представления
Кэширование фрагментов — это золотая середина: оно точнее кэширования целого представления и намного проще ручного кэширования каждого запроса.
Быстрая проверка
Проверим, как фрагмент сохраняет уникальность для каждого пользователя.
Итоги
Теперь Вы умеете загружать cache, оборачивать фрагмент в блок cache с указанием времени ожидания и имени, а также создавать отдельные варианты для пользователей ради точечного ускорения. ✨
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Кэширование фрагментов шаблонов» бесплатный?
Да — полный текст урока «Кэширование фрагментов шаблонов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.
Чему я научусь в уроке «Кэширование фрагментов шаблонов»?
Кэшируйте только ресурсоёмкие части страницы Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Django Academy?
Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Кэширование фрагментов шаблонов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Django Academy?
Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Серверы кэша и Redis
- Кэширование представлений и всего сайта
- Кэширование фрагментов шаблонов
- Низкоуровневый API кэша и его очистка