Ответ
В Django middleware — это промежуточный слой между запросом и ответом, обрабатывающий их на разных этапах. Основные виды:
- Request Middleware — обрабатывает запрос до view (например, аутентификация, CORS).
- View Middleware — выполняется перед вызовом view (например, CSRF-проверка).
- Response Middleware — обрабатывает ответ после view (например, сжатие gzip).
- Exception Middleware — перехватывает исключения (например, кастомные ошибки).
Пример простого middleware:
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# До view
print("До view")
response = self.get_response(request)
# После view
print("После view")
return response
Middleware регистрируется в settings.py
в MIDDLEWARE
. Порядок важен — они выполняются сверху вниз для запроса и снизу вверх для ответа.