Как проверить кэширование django?

есть ли способ быть конечно что страница поступает из кэша на рабочем сервере и на сервере разработки?

решение Не стоит включить кэширование промежуточного программного обеспечения, потому что не каждый проект использует их. Хотя само решение может be промежуточный.

просто проверка, являются ли данные устаревшими, не является очень безопасным методом тестирования IMO.

4 ответов


мы делаем много кэширования компонентов, и не все из них обновляются одновременно. Поэтому мы устанавливаем значения host и timestamp в универсально включенном контекстном процессоре. В верхней части каждого фрагмента шаблона мы вставляем:

<!-- component_name {{host}} {{timestamp}} -->

component_name просто упрощает просмотр источника и поиск этой строки.

все наши представления, которые являются страницами сведений об объекте, определяют контекстную переменную "page_object", и мы имеем это в верхней части базы.HTML-шаблон мастер:

<!-- {{page_object.class_id}} @ {{timestamp}} -->

class_id () - это метод из суперкласса, используемый всеми нашими основными классами контента. Это просто:

def class_id(self):
    "%s.%s.%s" % (self.__class__._meta.app_label,
                    self.__class__.__name__, self.id)

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


предложение Питера Роуэлла работает хорошо, но вам не нужен пользовательский обработчик контекста шаблона для временных меток. Вы можете просто использовать тег шаблона:

 <!-- {% now "jS F Y H:i" %} --> 

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


причина использования кэшей заключается в повышении производительности. Проверьте производительность, выполнив нагрузочный тест на сервере. Если производительность сервера соответствует вашим потребностям, то все готово!