我的Flask应用程序中出现KeyError:'CONTENT_LENGTH'错误。我什么都没改变。实际上,我让项目搁置了8个月,然后格式化了硬盘,因此我正在下载Flask-wtf等的所有最新库。有问题的代码在这里
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()
我不知道我们将LimtedStream用于什么。我是两年前添加的。有a bit about it here。如果我将行更改为以下内容:
stream = LimitedStream(environ ['wsgi.input'],0)
主页已加载,但我所有的帖子表单都停止工作,并且在发布任何内容时出现400错误。
这是怎么回事?
答案 0 :(得分:1)
事实证明,我只需要将环境包裹在try catch中。所以,我做了这样的事情:
try:
cont_len = int(environ['CONTENT_LENGTH'] or 0)
except Exception as e:
cont_len = 0
stream = LimitedStream(environ['wsgi.input'], cont_len)