Application Dispatcher
This middleware creates a single WSGI application that dispatches to multiple other WSGI applications mounted at different URL paths.
A common example is writing a Single Page Application, where you have a backend API and a frontend written in JavaScript that does the routing in the browser rather than requesting different pages from the server. The frontend is a single HTML and JS file that should be served for any path besides “/api”.
This example dispatches to an API app under “/api”, an admin app under “/admin”, and an app that serves frontend files for all other requests:
app = DispatcherMiddleware(serve_frontend, { '/api': api_app, '/admin': admin_app, })
In production, you might instead handle this at the HTTP server level, serving files or proxying to application servers based on location. The API and admin apps would each be deployed with a separate WSGI server, and the static files would be served directly by the HTTP server.
-
class werkzeug.middleware.dispatcher.DispatcherMiddleware(app, mounts=None)
-
Combine multiple applications as a single WSGI application. Requests are dispatched to an application based on the path it is mounted under.
Parameters: - app – The WSGI application to dispatch to if the request doesn’t match a mounted path.
- mounts – Maps path prefixes to applications for dispatching.
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/0.16.x/middleware/dispatcher/