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

В каком порядке выполняется middleware

Middleware в Python (например, в Django или FastAPI) выполняется в порядке их объявления.

Django:
При запросе middleware обрабатывается сверху вниз, а при ответе — снизу вверх.

python
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',  # 1-й на запросе, последний на ответе
    'django.contrib.sessions.middleware.SessionMiddleware',  # 2-й на запросе, предпоследний на ответе
    ...
]

FastAPI:
Middleware вызываются в порядке добавления.

python
from fastapi import FastAPI

app = FastAPI()

@app.middleware("http")
async def middleware1(request, call_next):  # Выполнится первым
    response = await call_next(request)
    return response

@app.middleware("http")
async def middleware2(request, call_next):  # Выполнится вторым
    response = await call_next(request)
    return response

Итог:
Порядок зависит от фреймворка, но всегда соответствует последовательности объявления.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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