August 2018
Intermediate to advanced
366 pages
10h 14m
English
ErrorMiddleware receives the original application and replaces it in the request handling.
All HTTP requests will be received by ErrorMiddleware, which will then proxy them to the application, returning the resulting response provided by the application.
If an exception arises while the application response was being consumed, it will stop the standard flow, and instead of consuming the response of the application any further, it will format the exception and send it back as the response to the browser.
This is done because ErrorMiddleware.__call__ in fact calls the wrapped application and iterates over any provided result:
def __call__(self, environ, start_response): app_iter = None try: app_iter = self.app(environ, start_response) ...