天天看點

Flask原了解析

參考檔案

django:基于wsgi:wsgiref;模闆是template

Flask:基于wsgi:werkzurg;模闆是jinjia2

def __call__(self, environ, start_response):

        return self.wsgi_app(environ, start_response)    def wsgi_app(self, environ, start_response):
        ctx = self.request_context(environ)
        error = None
        try:
            try:
                ctx.push()
                response = self.full_dispatch_request()
            except Exception as e:
                error = e
                response = self.handle_exception(e)
            except:  # noqa: B001
                error = sys.exc_info()[1]
                raise
            return response(environ, start_response)
        finally:
            if self.should_ignore_error(error):
                error = None
            ctx.auto_pop(error)