Назад к вопросам
Middle
5
Что такое middleware в Django, для чего используется, какие стандартные middleware знаете, приведите пример кастомного middleware?
Компании, где спрашивали
fabriqeue
Ответ от нейросети
sobes.tech AI
Middleware в Django — это компоненты, которые обрабатывают запросы и ответы между сервером и приложением. Они позволяют выполнять общие задачи, такие как аутентификация, сессии, кэширование, обработка ошибок, логирование и т.д., без необходимости писать этот код в каждом представлении.
Стандартные middleware в Django включают:
SecurityMiddleware— обеспечивает безопасность (например, HTTPS).SessionMiddleware— поддержка сессий.CommonMiddleware— различные общие функции, например, редиректы.CsrfViewMiddleware— защита от CSRF-атак.AuthenticationMiddleware— связывает пользователя с запросом.MessageMiddleware— поддержка системы сообщений.
Пример кастомного middleware, который логирует время обработки запроса:
import time
class TimingMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
start_time = time.time()
response = self.get_response(request)
duration = time.time() - start_time
print(f"Request to {request.path} took {duration:.4f} seconds")
return response
Чтобы использовать middleware, нужно добавить его класс в список MIDDLEWARE в настройках Django.