python - flask 首次运行 : Do not use the development server in a production environment

标签 python flask

我在 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 时会收到此错误?


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

最佳答案

为了将应用程序部署到生产环境,一种选择是使用 Waitress,一个生产 WSGI 服务器。

这里是在代码中使用waitress的例子。

from flask import Flask

app = Flask(__name__)

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

if __name__ == "__main__":
    from waitress import serve
    serve(app, host="0.0.0.0", port=8080)

运行应用程序:

$ python hello.py

Waitress 还提供了一个命令行实用程序waitress-serve。要使用它,您可以将代码修改为以下内容:

from flask import Flask

app = Flask(__name__)

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

def create_app():
   return app

那么我们可以使用 waitress-serve 如下:

waitress-serve --port=8080 --call hello:create_app

顺便说一句,8080 是默认端口。

要验证部署,请打开一个单独的窗口:

% curl localhost:8080
<h1>Hello!</h1>%                     

或直接在浏览器中http://localhost:8080/ .


部署应用的其他替代方案包括 Gunicorn 和 uWSGI。更多详情请引用flask deploy doc .

关于python - flask 首次运行 : Do not use the development server in a production environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51025893/

相关文章:

python - 使用 Subversion 1.6 安装 Trac

python - Flask api 表示影响所有 View

python - 结合 python flask 和 express.js

mysql - 为什么我从表中获取时间戳格式后会发生变化?

python - 带有 bins 值百分比的直方图?

python - 在一个元组内重复一个元组

python - Django、Python调用Python代码而不等待响应?

python - Flask 应用程序中到不同 matplotlib 图的多路径映射

python - 在WTForms中使用自定义属性创建selectfield选项

python - 如何在 Docker 容器中运行 Python Flask