forked from aodag/WebDispatch
shimizukawa/WebDispatch
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
WebDispatch ============================ WebDispatch is dispatcher collection for wsgi application. That has no dependency to exsiting frameworks, but works fine with `WebOb <http://www.webob.org>`_. Dispatch and Generate URL ----------------------------------------------- dispatch with url patterns. example helo application:: >>> from webob.dec import wsgify >>> @wsgify ... def greeting(request): ... return "Hello, %s" % request.urlvars['name'] create and configure URL Dispatcher:: >>> from webdispatch import URLDispatcher >>> dispatcher = URLDispatcher() >>> dispatcher.add_url('top', '/hello/{name}', greeting) invoke dispatcher as WSGI Application:: >>> from webob import Request >>> req = Request.blank('/hello/webdispatch') >>> res = req.get_response(dispatcher) >>> res.body 'Hello, webdispatch' Wildcard +++++++++++++++ You can use wildcard after last slash. Pattern with wildcard consumes paths before the wildcard, (and make that new script_name,) and remained paths becomes new path_info. >>> @wsgify ... def with_pathinfo(request): ... return "Hello, %s" % request.path_info >>> dispatcher.add_url('top', '/with_pathinfo/*', with_pathinfo) >>> req = Request.blank('/with_pathinfo/this/is/pathinfo') >>> res = req.get_response(dispatcher) >>> res.body 'Hello, this/is/pathinfo' Action Dispatch ------------------------------------------------- ActionDispatcher invokes object method with action name from urlvars. action handler class:: >>> class MyHandler(object): ... @wsgify ... def greeting(self, request): ... return "Hello" create and configure ActionDispatcher:: >>> from webdispatch import ActionDispatcher >>> actiondispatcher = ActionDispatcher() >>> actiondispatcher.register_actionhandler(MyHandler) add action url with urlvars named action:: >>> dispatcher.add_url('action_dispatch', '/actions/{action}', actiondispatcher) invoke wsgi appclication.:: >>> req = Request.blank('/actions/greeting') >>> res = req.get_response(dispatcher) >>> res.body 'Hello' Method Dispatch ------------------------------------- dispatch by HTTP METHOD restfully. sample wsgi app:: >>> @wsgify ... def get_hello(request): ... return "Get Hello" >>> @wsgify ... def post_hello(request): ... return "Post Hello" create and configure:: >>> from webdispatch import MethodDispatcher >>> restapp = MethodDispatcher() >>> restapp.register_app('get', get_hello) >>> restapp.register_app('post', post_hello) Each applications are registered with HTTP Method name. invoke WSGI application:: >>> req = Request.blank('/') >>> res = req.get_response(restapp) >>> res.body 'Get Hello'
About
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published