gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:30:50 26 4
gpt4 key购买 nike

在我的 flask 应用程序中,我有

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)

当我简单地使用 python app.py 运行应用程序时它按预期工作。但是,使用 Gunicorn gunicorn app:app 启动,应用程序启动得很好,但尝试加载任何页面都会导致 500,并抛出 KeyError
[2015-11-08 17:36:53 -0500] [15848] [ERROR] Error handling request
Traceback (most recent call last):
File "[...]/venv/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 130, in handle
self.handle_request(listener, req, client, addr)
File "[...]/venv/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
for item in respiter:
File "[...]/app.py", line 33, in __call__
stream = LimitedStream(environ['wsgi.input'], int(environ['CONTENT_LENGTH'] or 0))
KeyError: 'CONTENT_LENGTH'

有任何想法吗?

最佳答案

您正在访问一个不存在的 key 。 Python 字典提供 get帮助解决这个问题的方法

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

这将返回 os.environ['CONTENT_LENGTH'] 的值如果 key 存在,如果不存在则为 0。

关于python - Gunicorn 抛出 KeyError 导致内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33599911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com