This commit breaks up the `Application.__call__` method into smaller methods that can be overridden by subclasses. These methods allow customization of various steps of the request/response handling process: * `make_request`: Create the `Request` object from the WSGI environment dictionary. The default implementation creates a `milla.Request` object, copies the application configuration to its `config` attribute, and handles "emulated" HTTP methods from POST data. * `resolve_path`: Locates a controller callable from the given path info. The default implementation calls the `resolve` method on the application's `dispatcher` attribute. If `UnresolvePath` is raised, it returns a callable that raises `HTTPNotFound`. * `handle_error`: Called inside the exception handler when a controller callable raises an exception. The method should return a callable WSGI application (such as a `Response` or `WSGIHTTPException` object). To access the exception that was raised, use the `sys.exc_info` function. The default implementation returns the exception if it is an instance of `WSGIHTTPException`, or re-raises the exception otherwise. This allows middleware applications to handle the exception, if desired. |
||
---|---|---|
.. | ||
__init__.py | ||
test_app.py | ||
test_auth.py | ||
test_routing.py | ||
test_traversal.py |