Go to file
Dustin da406fcce8 app: Refactor Application class
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.
2015-04-25 12:42:42 -05:00
.settings Started documentation 2011-03-13 16:48:16 -05:00
doc doc: Update changelog 2015-02-21 00:09:10 -06:00
src/milla app: Refactor Application class 2015-04-25 12:42:42 -05:00
test app: Refactor Application class 2015-04-25 12:42:42 -05:00
.hgignore meta: ignore coverage cache 2015-02-19 20:39:57 -06:00
.hgtags Added tag 0.2.1 for changeset 3b8acd86b010 2015-02-21 10:29:48 -06:00
.project Started the Milla project, a simple WSGI web framework 2011-03-13 16:46:42 -05:00
.pydevproject Bump PyDev interpreter and grammer for Python 3 2012-11-27 17:26:34 -06:00
COPYING Added licensing information and boilerplate messages 2011-04-05 23:47:44 -05:00
MANIFEST.in Added an icon and support for automatically serving favicon.ico 2011-03-27 15:24:41 -05:00
README Added README 2013-01-22 12:00:56 -06:00
distribute_setup.py Added setup.py 2011-03-13 16:48:35 -05:00
milla.svg Added an icon and support for automatically serving favicon.ico 2011-03-27 15:24:41 -05:00
setup.cfg Version bump 2013-01-22 13:02:17 -06:00
setup.py Remove deprecated CLI tool 2015-04-15 20:11:25 -05:00

README

.. vim: set ft=rst :

=====
Milla
=====

*Milla* is a simple and lightweight web framework for Python. It built on top
of `WebOb`_ and thus implements the `WSGI`_ standard. It aims to be easy to use
while imposing no restrictions, allowing web developers to write code the way
they want, using the tools, platform, and extensions they choose.

To get started using *Milla* right away, visit `Downloads`_ to get the latest
version, then read the `Documentation`_.

Example
=======

.. code:: python

    from wsgiref import simple_server
    from milla.dispatch import routing
    import milla


    def hello(request):
        return 'Hello, world!'

    router = routing.Router()
    router.add_route('/', hello)
    app = milla.Application(router)

    httpd = simple_server.make_server('', 8080, app)
    httpd.serve_forever()


.. _WebOb: http://webob.org/
.. _WSGI: http://wsgi.readthedocs.org/
.. _Downloads: https://bitbucket.org/AdmiralNemo/milla/downloads
.. _Documentation: http://milla.readthedocs.org/