Warouter is a simple routing wrapper around webapp2.
Project description
Warouter is a simple routing wrapper around webapp2.
Installing
$ pip install warouter
Usage
Warouter provides url inheritance for handlers and a convenient uri_for function which can be called with a handler, instead of a string name.
A WSGIApplication mixin is provided which can handle a list of url decorator handlers.
Example:
>>> import warouter >>> import webapp2 >>> >>> @warouter.url('/') ... class RootHandler(webapp2.RequestHandler): ... def get(self): ... self.response.write('root') ... >>> @warouter.url('/child/<child_param:([a-z]+)>') ... class ChildHandler(RootHandler): ... def get(self, child_param): ... self.response.write(child_param) ... def put(self, child_param): ... pass ... >>> @warouter.url('/grandchild/<grandchild_param:([a-z]+)>') ... class GrandChildHandler(ChildHandler): ... def get(self, child_param, grandchild_param): ... self.response.write('\n'.join([child_param, grandchild_param])) ... def post(self, child_param, grandchild_param): ... self.response.write(warouter.uri_for(ChildHandler, ... child_param=child_param)) ... >>> assert RootHandler.url == '/' >>> assert ChildHandler.url == '/child/<child_param:([a-z]+)>' >>> assert GrandChildHandler.url == ( ... '/child/<child_param:([a-z]+)>/grandchild/<grandchild_param:([a-z]+)>') >>> assert GrandChildHandler.put is None >>> >>> app = warouter.WSGIApplication([ ... RootHandler, ... ChildHandler, ... GrandChildHandler ... ]) >>> >>> if __name__ == '__main__': ... from paste import httpserver ... httpserver.serve(app, port='8080') ... >>>
The above example requires Paste, which can be installed using:
$ pip install paste
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
warouter-0.0.3.tar.gz
(3.0 kB
view hashes)