|
Table of contents
|
Django поставляется с несколькими встроенными компонентами, которые помогают решать общие задачи, которые мы обсудим в следующих секциях. Класс компонента django.contrib.auth.middleware.AuthenticationMiddleware.
Этот компонент включает механизм поддержки аутентификации. Он
добавляет атрибут request.user, представляющий
текущего авторизованного пользователя, в каждый входящий
объект Данный компонент описан в главе «Сессии, пользователи и регистрация». Класс компонента: django.middleware.common.CommonMiddleware. Этот компонент добавляет несколько удобств для перфекционистов:
Класс компонента: django.middleware.gzip.GZipMiddleware. Этот компонент автоматически сжимает содержимое страниц для браузеров, которые поддерживают алгоритм gzip (все современные браузеры). Использование этого компонента может значительно снизить объём трафика, потребляемого вашим сервером. Недостатком применения этого компонента является возрастание времени отклика из-за затрат на компрессию страницы. Обычно мы предпочитаем иметь высокую скорость отклика, а не экономию трафика, но если вы предпочитаете обратно, просто активируйте этот компонент. Класс компонента: django.middleware.http.ConditionalGetMiddleware.
Компонент предоставляет поддержку условного GET.
Если отклик содержит заголовки Last-Modified
или ETag, а запрос содержит
If-None-Match или
If-Modified-Since, то отклик заменяется на 304
(«Не изменён»). Поддержка ETag
зависит от параметра Данный компонент также удаляет содержимое любого отклика для запроса HEAD ??? FIXME ??? и устанавливает заголовки отклика Date и Content-Length для всех запросов. Класс компонента: django.middleware.http.SetRemoteAddrFromForwardedFor. Этот компонент мы разобрали ранее в секции «Что такое компоненты?». Он устанавливает request.META['REMOTE_ADDR'], используя request.META['HTTP_X_FORWARDED_FOR'], если последний установлен. Это полезно, когда вы находитесь за обратным прокси, который преобразовывает параметр REMOTE_ADDR каждого запроса в 127.0.0.1. Опасность!Компонент не производит проверку HTTP_X_FORWARDED_FOR. Если вы не находитесь за обратным прокси сервером, не используйте этот компонент.Любой может сфабриковать значение HTTP_X_FORWARDED_FOR и, соответственно, подменить свой IP адрес. Используйте этот компонент только в том случае, когда вы абсолютно доверяете значениям в HTTP_X_FORWARDED_FOR.
Класс компонента: django.contrib.sessions.middleware.SessionMiddleware. Этот компонент обеспечивает поддержку сессий. Подробности приведены в главе «Сессии, пользователи и регистрация». Класс компонента: django.middleware.cache.CacheMiddleware. Этот компонент обеспечивает кэширование каждой страницы Django проекта. Подробности приведены в главе «Кэширование». Класс компонента: django.middleware.transaction.TransactionMiddleware. Этот компонент «подключает» операции COMMIT или ROLLBACK к фазе запроса/отклика. Если функция представления отрабатывает успешно, то выполняется COMMIT. Если представление вызывает исключение, то выполняется ROLLBACK. Место определения этого компонента в стеке компонентов имеет значение. Компоненты вызываемые до данного компонента выполняются по стратегии коммит-по-сохранению (стандартное поведение Django). Компоненты вызываемые после — будут включены в транзакцию в которой будет работать функция представления. Обратитесь к приложению «Справочник по API взаимодействия с базой данных» для получения подробностей о транзакциях базы данных. |
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |