|
Оглавление
|
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 взаимодействия с базой данных» для получения подробностей о транзакциях базы данных. |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
1049
49
130
71
Версия книги
1.0
2.0
Версия 2.0 в процессе перевода!
Мой луч
Многообразие света
Полезное
Актуальные вакансии,
Python работа
для python-разработчиков.
Скачать в формате
CHM от 2 сентябряЗаказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта. Чем чаще заказываете — тем больше перевожу. Русская группа
Ускорить процесс перевода!
R130494980980
Z425285133788 E112528079659 U327380922061 Книга помогла реализовать:
|
| © 2008-2009 Ruslan Popov @ gmail.com | Powered by Django 1.1 beta 1 SVN-11114 |