Sobes.tech
Middle
52

Ce este middleware în Django, la ce folosește, ce middleware standard cunoști, oferă un exemplu de middleware personalizat?

Companiile au fost întrebate
fabriqeue

Răspuns de la 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.