为什么我应该切换到烧瓶生产部署而不是开发服务器?
Why should I switch to a flask production deployment instead of a development server?
我正在开发一个烧瓶应用程序:https://github.com/josephmalisov/todo_list
当我在电脑上 运行 时,我被告知(红色警告):
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
首先,这不是自相矛盾吗?
但主要是,我想知道开发服务器和生产部署之间的区别。当我 运行 它在 heroku 上时,它可以工作,那么做这个冗长的 Deploy to Production 烧瓶教程有什么好处?
回答您的 'main question',如 Flask 文档所述:
Flask’s built-in server is not suitable for production as it doesn’t scale well.
如果您是唯一使用该应用程序的人,那么在 Heroku 上这对您来说并不明显,但是随着越来越多的用户访问您的应用程序,Flask 服务器将无法很好地处理这个问题(它不是设计用于,与 Gunicorn 之类的东西相比)。
您所指的 'environment' 字符串实际上是一个配置设置,它允许您告诉应用程序如何运行。例如,通过将环境设置为 'development'(即 export FLASK_ENV=development
),您将从应用程序中获得某些行为以及您在生产中不想要的任何扩展,例如抛出错误时进行交互式调试。如果设置为 'production',您将不会获得这些行为。
这里没有真正的矛盾:应用程序没有在本地配置为 运行 作为 'development',这与使用 flask 开发服务器无关。
flask 文档非常棒,所以我建议您查看那里以了解 flask 的工作原理。另请参阅 Miguel Grinberg 出色的 Flask Mega 教程系列。
我正在开发一个烧瓶应用程序:https://github.com/josephmalisov/todo_list 当我在电脑上 运行 时,我被告知(红色警告):
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
首先,这不是自相矛盾吗?
但主要是,我想知道开发服务器和生产部署之间的区别。当我 运行 它在 heroku 上时,它可以工作,那么做这个冗长的 Deploy to Production 烧瓶教程有什么好处?
回答您的 'main question',如 Flask 文档所述:
Flask’s built-in server is not suitable for production as it doesn’t scale well.
如果您是唯一使用该应用程序的人,那么在 Heroku 上这对您来说并不明显,但是随着越来越多的用户访问您的应用程序,Flask 服务器将无法很好地处理这个问题(它不是设计用于,与 Gunicorn 之类的东西相比)。
您所指的 'environment' 字符串实际上是一个配置设置,它允许您告诉应用程序如何运行。例如,通过将环境设置为 'development'(即 export FLASK_ENV=development
),您将从应用程序中获得某些行为以及您在生产中不想要的任何扩展,例如抛出错误时进行交互式调试。如果设置为 'production',您将不会获得这些行为。
这里没有真正的矛盾:应用程序没有在本地配置为 运行 作为 'development',这与使用 flask 开发服务器无关。
flask 文档非常棒,所以我建议您查看那里以了解 flask 的工作原理。另请参阅 Miguel Grinberg 出色的 Flask Mega 教程系列。