Django: как гибко кэшировать динамические страницы? - PullRequest
1 голос
/ 03 апреля 2011

Я пытался настроить кэш для моего приложения Django, но, похоже, основа кэширования Django основана на TIMEOUT: установите кэш, и он останется действительным в течение TIMEOUT секунд.

Это кажется довольно бесполезным для большинства ситуаций.На большинстве веб-страниц размещается пользовательское содержимое, такое как комментарии или голоса или сообщения на форуме.Механизм тайм-аута не будет работать там.Необходим какой-то способ аннулирования кэшей: когда пользователь отправляет комментарий или голос, кэш для этой страницы должен быть аннулирован.

Есть ли способ сделать это в Django?Если нет, то как вы кешируете страницы, сгенерированные вашим приложением Django?

Спасибо.

1 Ответ

2 голосов
/ 03 апреля 2011

В django есть способ удалить кэшированные элементы вручную.Поиск в документации для cache.delete и cache.delete_many.В ваших представлениях Django вы можете программно решить, когда аннулировать (или удалить) кэшированный элемент, основываясь на любых правилах, которые вы хотите.Чтобы избежать проблемы с TIME_OUT, просто дайте достаточно долгое время, чтобы не быть достигнутым.

В SO также есть несколько похожих вопросов, которые могут помочь вам ... посмотрите этот ...

Удалить определенные предметы из кеша Джанго?

...