Sobes.tech
Back to questions
Junior — Middle
74

Имели ли вы опыт разработки собственных промежуточных слоёв (middleware) в Django или аналогичных фреймворках?

Answer from AI

sobes.tech AI

Да, в Django можно создавать собственные промежуточные слои (middleware) для обработки запросов и ответов на уровне фреймворка. Middleware — это класс, который перехватывает запросы до попадания в представления и/или ответы перед отправкой клиенту.

Пример простого middleware, который логирует время обработки запроса:

import time

class SimpleTimingMiddleware:
    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. Такой подход позволяет добавлять кросс-срезовые функции, например, логирование, аутентификацию, обработку ошибок и т.д.