示例#1
0
    def dispatch(self, request):
        local.request = request

        local.host = wsgi.host(request.environ)
        local.origin = origin(self.conf.getiter("general",
                                                "host"))(request.environ)

        adapter = self.urls.bind_to_environ(request.environ)

        try:
            handler, values = adapter.match()
        except HTTPException as e:
            return error_handler(request.environ, request, e)
        else:
            try:
                response = handler(request.environ, request, **values)
            except HTTPException as e:
                return error_handler(request.environ, request, e)
            except Exception:
                logger.exception("%s %s", request.method,
                                 request.environ["PATH_INFO"])
                return error_handler(request.environ, request,
                                     InternalServerError())
            else:
                return response
示例#2
0
文件: dispatch.py 项目: kod3r/isso
    def __call__(self, environ, start_response):

        if Request(environ).url.endswith((".js", ".css")):
            return self.isso.values()[0](environ, start_response)

        if "HTTP_X_ORIGIN" in environ and "HTTP_ORIGIN" not in environ:
            environ["HTTP_ORIGIN"] = environ["HTTP_X_ORIGIN"]

        origin = environ.get("HTTP_ORIGIN", wsgi.host(environ))

        try:
            # logger.info("dispatch %s", origin)
            return self.isso[origin](environ, start_response)
        except KeyError:
            # logger.info("unable to dispatch %s", origin)
            resp = ImATeapot("unable to dispatch %s" % origin)
            return resp(environ, start_response)
示例#3
0
文件: __init__.py 项目: eroen/isso
    def dispatch(self, request):
        local.request = request

        local.host = wsgi.host(request.environ)
        local.origin = origin(self.conf.getiter("general", "host"))(request.environ)

        adapter = self.urls.bind_to_environ(request.environ)

        try:
            handler, values = adapter.match()
        except HTTPException as e:
            return e
        else:
            try:
                response = handler(request.environ, request, **values)
            except HTTPException as e:
                return e
            except Exception:
                logger.exception("%s %s", request.method, request.environ["PATH_INFO"])
                return InternalServerError()
            else:
                return response