Проверяет понимание жизненного цикла HTTP-запроса в Django и места middleware в цепочке обработки.
Middleware выполняется между получением запроса сервером и вызовом view, а также после выполнения view перед отправкой ответа клиенту. Он может изменять запрос и ответ. Middleware вызываются в порядке, указанном в настройках. При обработке ответа порядок вызова обратный.
Middleware — это слой, который обрабатывает запрос и ответ на промежуточных этапах обработки.
Middleware — это компонент, который:
выполняется до view
может выполняться после view
может изменять request и response
Обработка запроса происходит так:
Запрос приходит в Django
Последовательно выполняются middleware
Вызывается view
Ответ проходит через middleware в обратном порядке
Ответ отправляется клиенту
Это называют pipeline обработки запроса.
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# код до view
response = self.get_response(request)
# код после view
return response
Middleware применяют:
для логирования
для аутентификации
для работы с сессиями
для защиты от атак
Middleware выполняется до и после view и позволяет централизованно обрабатывать запросы и ответы.