WSGI-compliant HTTP publisher.
Otto is an HTTP publisher which uses a routes-like syntax to map URLs to code. It supports object traversal.
You can use the publisher to write web applications. It was designed with both small and large applications in mind. We have tried to incorporate elements of existing publishers to allow diverse and flexible application patterns while still being in concordance with the Zen Of Python.
Here’s a variation of a familiar theme:
import otto import webob import wsgiref.simple_server app = otto.Application() @app.connect("/*path/:name") def hello_world(request, path=None, name=u'world'): return webob.Response(u"An %d-deep hello %s!" % (len(path), name)) wsgiref.simple_server.make_server('', 8080, app).serve_forever()
This release is compatible with Python 2.4+.
See the documentation for this release.
- Route matches that come before object mapping are passed on to the mapper on instantiation; these matches are then not passed to the controller.
- The object mapper takes the place of the traverser; on instantiation it gets the part of the match dictionary that comes before the asterisk.
- The empty asterisk is now mapped to the empty string. This does not change the high-level interface.
- The leading slash is now optional in a route path definition.
- The Route class now provides the match method.
- The Publisher.route method was renamed to connect. This method now takes a route object. This change was also applied for the Router class.
- Initial public release.