FLASK_ENV 似乎被忽略(无法进入调试环境)

Ste*_*hen 7 python flask

根据 Flask 文档,

Flask 脚本非常适合启动本地开发服务器,但每次更改代码后都必须手动重新启动它。这不太好,Flask 可以做得更好。如果启用调试支持,服务器将在代码更改时重新加载自身,并且如果出现问题,它还会为您提供有用的调试器。

要启用所有开发功能(包括调试模式),您可以导出 FLASK_ENV 环境变量并将其设置为开发,然后再运行服务器:

$ export FLASK_ENV=development 
$ flask run
Run Code Online (Sandbox Code Playgroud)

但是,在我的非常简单的示例中,代码更改在我重新启动服务器之前仍然不会生效。我已经设置了我想要运行的特定脚本export FLASK_APP=hello.py,该脚本如下:

from flask import Flask, url_for, request, render_template
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!!"
Run Code Online (Sandbox Code Playgroud)

当 Flask 开发服务器运行时,我通过添加或删除感叹号并保存文件来更改返回值。然后我在Chrome中刷新页面http://127.0.0.1:5000/,但感叹号的数量没有变化。一旦我在终端中退出 FlaskCtrl-C并重新启动它,然后再次刷新页面,我就会得到正确数量的感叹号。

这是在 Mac、Python 3.6.0 (Anaconda)、Flask 0.12 上进行的。

我是否误解了开发服务器如何帮助我,或者您认为我还应该检查其他什么内容?我对 Flask 还很陌生。

Dav*_*ith 10

尝试

FLASK_APP=app.py FLASK_DEBUG=1 TEMPLATES_AUTO_RELOAD=1 flask run
Run Code Online (Sandbox Code Playgroud)

FLASK_DEBUG将为您提供您现在正在寻找的行为;TEMPLATE_AUTO_RELOAD一旦您开始使用模板,就会为您提供所需的行为。