Exemple #1
0
    def response(self, environ, start_response):
        """ Respone from WSGI environ.
        """
        request = Request(environ)

        try:
            self.handle_before_request(request)

            rsp = self.match(request)()
            if is_async(rsp):
                rsp = yield from rsp
            response = self.make_response(rsp)
        except HTTPError as err:
            response = self.make_error_response(err, request)
        except Exception as exc:
            self.log_exception(exc)
            response = self.make_error_response(HTTPError(500))

        response = self.handle_after_request(response)
        return response.send(environ, start_response)