在我的烧瓶应用中,我有
/\{\{(.*\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
有什么想法吗?
答案 0 :(得分:1)
您正在访问不存在的密钥。 Python词典提供get
方法来帮助解决这个问题
int(so.environ.get('CONTENT_LENGTH', 0))
如果密钥存在,则返回os.environ['CONTENT_LENGTH']
的值,否则返回0。