Sobes.tech
Middle
72

¿Qué es middleware en Django, para qué se utiliza, qué middleware estándar conoces, da un ejemplo de middleware personalizado?

Empresas donde se preguntó
fabriqeue

Respuesta de la IA

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.