初次运行时的烧瓶:请勿在生产环境中使用开发服务器


问题内容

我在PyCharm社区版中安装了Flask插件,而我的flask应用程序中只有以下简单代码:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello!</h1>'

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

我收到此消息:

WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead

* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
* Running on http://127.0.0.1:5000/

为什么在运行Flask时出现此错误?


该消息的先前版本为“请勿在生产环境中使用开发服务器”。


问题答案:

除非您告知开发服务器它正在开发模式下运行,否则它将假定您正在生产环境中使用它,并警告您不要这样做。开发服务器不适用于生产环境。它的设计目的不是特别高效,稳定或安全。

通过将FLASK_ENV环境变量设置为来启用开发模式development

$ export FLASK_APP=example
$ export FLASK_ENV=development
$ flask run

如果您在PyCharm(或可能是其他任何IDE)中运行,则可以在运行配置中设置环境变量。

开发模式默认情况下启用调试器和重新加载器。如果您不想要这些,请通过--no-debugger或传递--no-reloaderrun命令。


但是,该警告只是警告,并不是阻止您的应用运行的错误。如果您的应用无法正常运行,则您的代码还有其他问题。