Диспетчер приложений
Этот модуль создает одно WSGI-приложение, которое перенаправляет запросы к нескольким другим WSGI-приложениям, установленным по разным URL-путям.
Типичный пример — создание одностраничного приложения (Single Page Application), где у вас есть бэкэнд-API и фронтенд, написанный на JavaScript, который обрабатывает маршрутизацию в браузере вместо запроса различных страниц от сервера. Фронтенд — это единственный файл HTML и JS, который должен предоставляться для любого пути, кроме «/api».
В этом примере перенаправление происходит к приложению API по пути «/api», приложению администратора по пути «/admin» и приложению, обслуживающему фронтенд-файлы для всех остальных запросов:
app = DispatcherMiddleware(serve_frontend, {
'/api': api_app,
'/admin': admin_app,
})
В рабочей среде вы, вероятно, будете обрабатывать это на уровне HTTP-сервера, предоставляя файлы или проксируя запросы к приложениям на основе местоположения. Приложения API и администратора будут развернуты с отдельным WSGI-сервером, а статические файлы будут предоставляться напрямую HTTP-сервером.
-
class werkzeug.middleware.dispatcher.DispatcherMiddleware(app, mounts=None) -
Объединяет несколько приложений в одно WSGI-приложение. Запросы перенаправляются к приложению на основе пути, под которым оно установлено.
© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.0.x/middleware/dispatcher/