Localhost Flask 应用程序在 413 错误后崩溃

Localhost Flask app crashes after 413 error

好的,所以我意识到当我尝试上传超过我在 config.py 中指定的数量时发生了一些奇怪的事情,即:

class Config:
#other configurations
MAX_CONTENT_LENGTH = 10 * 1024 * 1024

当我尝试上传超过 10 MB 时,应用程序没有给我 413 错误,而是拒绝连接。我的错误处理程序:

@errors.app_errorhandler(413)
def error_413(error):
    return render_template('errors/413.html'), 413

我的run.py:

from flaskblog import create_app

app = create_app()

if __name__ == "__main__":
    app.run(debug=True)

我可以在终端上看到我遇到了这个错误:

"POST /foo/bar HTTP/1.1" 413 -

虽然我的应用程序在终端上似乎是 运行,但我无法访问它。它只是死在浏览器上:

ERR_CONNECTION_REFUSED

我在 uWSGI、Werkzeug 和其他浏览器上试过 运行,没有成功。

知道发生了什么吗?

编辑:我重新启动计算机后可以访问。但我仍然很好奇为什么会发生这种情况。 我还使用带有外部 IP 的云 SQL 以获取更多信息。

我在使用MAX_CONTENT_LENGTH configuration.Did时遇到了类似的错误你注册蓝图errors如果是,请尝试从@errors.app_errorhandler中删除app_。如下所示:

@errors.errorhandler(413)
def error_413(error):
    return render_template('errors/413.html'), 413

如果这不起作用,请尝试删除 MAX_CONTENT_LENGTH 行,或者如果您尝试从另一台设备连接,请使用以下命令 运行 您的应用程序 flask run --host=0.0.0.0 然后访问它在另一台设备上使用你的路由器的 IP 地址,通常看起来像 192.168.xxx.xxx 和你的应用程序正在 运行 上的端口像 192.168.xxx.xxx:<port_of_your_app>。如果这不起作用,它可能是一个您的防火墙拒绝您的应用 运行 正在使用的端口中的传入连接,在这种情况下,您可以 运行 在您的终端 sudo ufw allow <YOUR_PORT>.

上执行以下命令

好的,下次我应该更仔细地阅读文档:

Connection Reset Issue When using the local development server, you may get a connection reset error instead of a 413 response. You will get the correct status response when running the app with a production WSGI server.

来自 Flask - File uploads.