Какие знаешь виды middleware

Ответ

В Django middleware — это промежуточный слой между запросом и ответом, обрабатывающий их на разных этапах. Основные виды:

  1. Request Middleware — обрабатывает запрос до view (например, аутентификация, CORS).
  2. View Middleware — выполняется перед вызовом view (например, CSRF-проверка).
  3. Response Middleware — обрабатывает ответ после view (например, сжатие gzip).
  4. 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. Порядок важен — они выполняются сверху вниз для запроса и снизу вверх для ответа.