Как мне интегрировать 304 в Django? - PullRequest
6 голосов
/ 18 февраля 2010

Когда пользователь запрашивает ту же страницу с теми же данными ... Я бы хотел, чтобы Django вернул 304, чтобы браузеру не приходилось загружать страницу заново.

Я новичок в этом. Как это можно сделать?

Спасибо.

Ответы [ 2 ]

13 голосов
/ 18 февраля 2010

В документации Django есть обширное описание: Обработка условного представления

Особенно полезны следующие инструменты:

  1. @last_modified и @etag представления декораторов.Вы предоставляете им функцию для вычисления значения из запроса, а все остальное выполняется автоматически.
  2. django.middleware.http.ConditionalGetMiddleware - он генерирует требуемый ETag и возвращает 304, если есть попадание в кэш, но это все равно требует времени сервера длягенерировать полный HTML и экономить только сетевое время.Все еще очень хорошо для изменения конфигурации одной линии.
6 голосов
/ 18 февраля 2010

Вы можете заглянуть в систему кэширования Django или, если вы можете легко проверить, запрашивает ли пользователь те же данные, вы можете вернуть HttpResponseNotModified() - это вернет 304. Проверьте документы здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...