Django: как гибко кэшировать динамические страницы?
Я пытался настроить кеш для моего приложения Django, но похоже, что основа кэширования Django основана на TIMEOUT
: установите кеш, и он останется действительным для TIMEOUT
количество секунд.
Это кажется довольно бесполезным для большинства ситуаций. На большинстве веб-страниц есть пользовательский контент, такой как комментарии или голоса или сообщения на форуме. Механизм тайм-аута не будет работать там. Необходим какой-то способ аннулирования кэшей: когда пользователь отправляет комментарий или голосование, кэш для этой страницы должен быть аннулирован.
Есть ли способ сделать это в Django? Если нет, то как вы кешируете страницы, сгенерированные вашим приложением Django?
Благодарю.
1 ответ
В django есть способ удалить кэшированные элементы вручную. Искать в документации для cache.delete
а также cache.delete_many
, В ваших представлениях django вы можете программно решить, когда аннулировать (или удалить) кэшированный элемент, основываясь на любых правилах, которые вы хотите. Чтобы избежать проблемы TIME_OUT, просто дайте достаточно долгое время, чтобы не быть достигнутым.
Есть также несколько подобных вопросов в SO, которые могут помочь вам... увидеть этот...