Mercurial > hg > wsgintegrate
view wsgintegrate/dispatcher.py @ 20:caf763fc1c7d
front end more servers
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Thu, 06 Mar 2014 22:52:25 -0800 |
parents | 1a7bbd97dda4 |
children | d742aff49859 |
line wrap: on
line source
""" multi-application dispatcher for WSGI apps """ from webob import Request from webob import exc class Dispatcher(object): def __init__(self, *apps): self.apps = apps self.codes = set([404]) def __call__(self, environ, start_response): request = Request(environ) for app in self.apps: try: response = request.get_response(app) if response.status_int in self.codes: continue break except exc.HTTPNotFound: continue except: print app raise else: response = exc.HTTPNotFound() try: return response(environ, start_response) except: response.headerlist = [(i,str(j)) for i, j in response.headerlist] return response(environ, start_response)