Встречается на собеседованиях • сегодня

Какие методы нужно реализовать при реализации своего middleware

Для реализации middleware в Python (например, для веб-фреймворков вроде Django или FastAPI) нужно определить метод __call__ или __init__ + __call__, в зависимости от требований фреймворка.

Пример для ASGI (FastAPI, Starlette):

python
class CustomMiddleware:
    def __init__(self, app):
        self.app = app
text
async def __call__(self, scope, receive, send):
    # До обработки запроса
    response = await self.app(scope, receive, send)
    # После обработки запроса
    return response
text

**Для Django:**  
```python
class SimpleMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # До view
        response = self.get_response(request)
        # После view
        return response

Ключевые моменты:

  • __init__ — инициализация (может принимать app или get_response).
  • __call__ — обработка запроса/ответа.
  • В ASGI __call__ должен быть асинхронным.
  • Middleware может модифицировать request, response или scope.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы