Gunicorn抛出KeyError导致内部服务器错误

时间:2015-11-08 22:43:55

标签: python flask gunicorn

在我的烧瓶应用中,我有

/\{\{(.*\s*Form::.*\s*)\}\}/s

当我使用app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024 class StreamConsumingMiddleware(object): def __init__(self, app): self.app = app def __call__(self, environ, start_response): stream = LimitedStream(environ['wsgi.input'], int(environ['CONTENT_LENGTH'] or 0)) environ['wsgi.input'] = stream app_iter = self.app(environ, start_response) try: stream.exhaust() for event in app_iter: yield event finally: if hasattr(app_iter, 'close'): app_iter.close() app.wsgi_app = StreamConsumingMiddleware(app.wsgi_app) 运行应用时,它按预期工作。但是,与Gunicorn python app.py一起启动,该应用程序启动很好,但尝试加载任何页面结果为500,并抛出一个KeyError

gunicorn app:app

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您正在访问不存在的密钥。 Python词典提供get方法来帮助解决这个问题

int(so.environ.get('CONTENT_LENGTH', 0))

如果密钥存在,则返回os.environ['CONTENT_LENGTH']的值,否则返回0。