Sobes.tech
Middle
65

Wat is middleware in Django, waar wordt het voor gebruikt, welke standaard middleware ken je, geef een voorbeeld van aangepaste middleware?

Bedrijven waar gevraagd werd
fabriqeue

Antwoord van 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.