我在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,请检查拼写,然后重试。”
该消息的先前版本显示为“请勿在生产环境中使用开发服务器。”
答案 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