Пример #1
0
 def __call__(self, environ, start_response):
     if environ['REQUEST_METHOD'] == 'HEAD':
         start_response(self.status, self.headerlist)
         return []
     if not self.body and not self.empty_body:
         return self.generate_response(environ, start_response)
     return Response.__call__(self, environ, start_response)
Пример #2
0
    def __call__(self, environ, start_response):
        self.request = Request(environ)
        self.environ = environ

        url_match = self.app_by_url()

        if url_match:
            params = self.environ.get('params', {})
            params.update(url_match.params)

            if url_match.app == 'self':

                if self.request.method in self.ALLOWED_HTTP_METHODS:
                    self.dispatch(params)

                    if self.responsable:
                        return self.call(environ, start_response)
                    else:
                        return Response.__call__(self, environ, start_response)
                else:
                    return HTTPMethodNotAllowed()(environ, start_response)

            else:
                environ['SCRIPT_NAME'] += url_match.app_url
                environ['PATH_INFO'] = self.request.path_info.lstrip('/')[len(
                    url_match.app_url):]
                environ['params'] = params
                return url_match.app(environ, start_response)

        else:
            return HTTPNotFound('%s is not found on this server' %
                self.request.path)(environ, start_response)
Пример #3
0
 def __call__(self, environ, start_response):
     if environ['REQUEST_METHOD'] == 'HEAD':
         start_response(self.status, self.headerlist)
         return []
     if not self.body and not self.empty_body:
         return self.generate_response(environ, start_response)
     return Response.__call__(self, environ, start_response)
Пример #4
0
 def __call__(self, environ, start_response):
     if self.body or self.empty_body:
         app_iter = Response.__call__(self, environ, start_response)
     else:
         app_iter = self.generate_response(environ, start_response)
     if environ['REQUEST_METHOD'] == 'HEAD':
         app_iter = []
     return app_iter
Пример #5
0
 def __call__(self, environ, start_response):
     # FIXME: ensure HEAD and GET response headers are identical
     if environ['REQUEST_METHOD'] == 'HEAD':
         start_response(self.status, self.headerlist)
         return []
     if not self.body and not self.empty_body:
         return self.generate_response(environ, start_response)
     return Response.__call__(self, environ, start_response)
Пример #6
0
 def __call__(self, environ, start_response):
     # FIXME: ensure HEAD and GET response headers are identical
     if environ['REQUEST_METHOD'] == 'HEAD':
         start_response(self.status, self.headerlist)
         return []
     if not self.body and not self.empty_body:
         return self.generate_response(environ, start_response)
     return Response.__call__(self, environ, start_response)
Пример #7
0
 def __call__(self, environ, start_response):
     # differences from webob.exc.WSGIHTTPException
     #
     # - does not try to deal with HEAD requests
     #
     # - does not manufacture a new response object when generating
     #   the default response
     #
     self.prepare(environ)
     return Response.__call__(self, environ, start_response)
Пример #8
0
 def __call__(self, environ, start_response):
     # differences from webob.exc.WSGIHTTPException
     #
     # - does not try to deal with HEAD requests
     #
     # - does not manufacture a new response object when generating
     #   the default response
     #
     self.prepare(environ)
     return Response.__call__(self, environ, start_response)
Пример #9
0
    def __call__(self, environ, start_response):
        d = environ['sancus.pos_args']
        kw = environ['sancus.named_args']
        h = environ['sancus.handler']
        hn = environ['sancus.handler_name']

        ret = h(self.request, *d, **kw)
        if ret is None:
            return Response.__call__(self, environ, start_response)
        elif ret == 404:
            raise exc.HTTPNotFound()
        elif ret == 405:
            raise exc.HTTPMethodNotAllowed(allow = self.supported_methods(environ))
        elif ret == 400:
            raise exc.HTTPBadRequest()
        elif ret == 503:
            raise exc.HTTPServiceUnavailable()
        else:
            assert "handler %s returned %r" % (hn, ret)
Пример #10
0
    def __call__(self, environ, start_response):
        named_args = environ['sancus.args']
        handler = environ['sancus.handler']

        self.__logger__.debug('handler:%r, named_args:%r' % (handler, named_args))
        ret = handler(self.request, **named_args)

        if ret is None:
            return Response.__call__(self, environ, start_response)
        elif ret == 404:
            raise exc.HTTPNotFound()
        elif ret == 405:
            raise exc.HTTPMethodNotAllowed(allow = self.supported_methods())
        elif ret == 400:
            raise exc.HTTPBadRequest()
        elif ret == 503:
            raise exc.HTTPServiceUnavailable()
        else:
            log.warn("%r returned %r" % (h, ret))
            raise exc.HTTPInternalServerError("%d returned from handler not supported" % ret)
Пример #11
0
 def __call__(self, environ, start_response):
     "Return the HTTP response"
     self.content_type = 'text/javascript; charset=utf-8'
     self.body = json.dumps(self.detail)
     return Response.__call__(self, environ, start_response)
Пример #12
0
 def __call__(self, environ, start_response):
     "Return the HTTP response"
     self.content_type = 'text/javascript; charset=utf-8'
     self.body = json.dumps(self.detail)
     return Response.__call__(self, environ, start_response)