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

时间:2018-06-25 14:29:21

标签: python flask

我在PyCharm Community Edition中安装了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/

当我来到http://127.0.0.1:5000时说: “在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写,然后重试。”


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

5 个答案:

答案 0 :(得分:16)

除非您告知开发服务器它正在开发模式下运行,否则它将假定您正在生产中使用它,并警告您不要这样做。 The development server is not intended for use in production. It is not designed to be particularly efficient, stable, or secure.

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

export FLASK_ENV=development
flask run

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

开发模式默认情况下启用调试器和重新加载器。如果您不需要这些,请将--no-debugger--no-reloader传递给run命令。

答案 1 :(得分:7)

取决于您要做什么。如果您确实想在生产中使用此功能,则应查看以下内容:

http://flask.pocoo.org/docs/dev/tutorial/deploy/

  

在公开运行而不是在开发中运行时,不应使用内置的开发服务器(烧瓶运行)。 Werkzeug为方便起见提供了该开发服务器,但该服务器并非特别高效,稳定或安全。

     

请使用生产WSGI服务器。例如,要使用Waitress,首先将其安装在虚拟环境中:

在您的情况下,您可以尝试如下操作:

from waitress import serve

from flask import Flask

app = Flask(__name__)


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


serve(app, host='0.0.0.0', port=8080)

答案 2 :(得分:0)

如果对于某些人(如我之前所述)上述答案不起作用,我认为以下答案将起作用(我认为适用于Mac用户) 输入以下命令以进行烧瓶运行

$ export FLASK_APP = hello.py
$ export FLASK_ENV = development
$ flask run

或者,您可以执行以下操作(我还没有尝试过,但是在线上有一个资源在谈论它)

$ export FLASK_APP = hello.py
$ python -m flask run

来源:For more

答案 3 :(得分:0)

这在 Windows 上对我有用:

$env:FLASK_APP="flask_project.py"
$env:FLASK_ENV="development"
flask run

flask_project.py 与我的虚拟环境在同一路径上。

答案 4 :(得分:-2)

运行python文件时,你通常会这样做

python app.py

这将显示这些消息。

为避免这些消息,请在 CLI(命令行界面)中运行这些命令。

export FLASK_APP=app.py
export FLASK_ENV=development
export FLASK_DEBUG=0
flask run