Sobes.tech
Back to questions
Middle
4

Что такое middleware в Django, для чего используется, какие стандартные middleware знаете, приведите пример кастомного middleware?

Companies where asked
fabriqeue

Answer from AI

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.