烧瓶自动重新加载不会刷新浏览器

时间:2018-07-17 10:58:29

标签: python flask refresh reload

我已经阅读了数十个有关此问题的主题,但找不到适合我的解决方案,因此,非常感谢您能为我提供帮助,以帮助您了解破坏重新加载器的原因。我对开发人员还很陌生(主要在node,angular和django中工作)。我已经在Mac和ubuntu上进行了测试,并通过其最小的烧瓶应用程序和大型的应用程序安装了文档,这是我所做的各种尝试中最简单的测试:

在终端机上:

python3 -m venv virtualenv
source virtualenv/bin/activate
pip install flask
vim server.py

然后

from flask import Flask
app = Flask(__name__)


@app.route('/')
def home():
    return 'Hi'

wq,然后返回终端:

export FLASK_ENV=development
export FLASK_DEBUG=1
export FLASK_APP=server.py
flask run

现在将return语句字符串从“ hi”更改为“ hello”,直到我在浏览器上单击“刷新”,什么都没有改变。重要的是,服务器确实宣布发生了更改-它只是不重新加载浏览器。参见下面的输出:

(virtualenv) ➜  test git:(master) ✗ Flask run
 * Serving Flask app "server.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 297-732-354
 * Detected change in '/Users/pb/Documents/code/projects/test/server.py', reloading
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 297-732-354

我已经尝试过使用模板渲染,对CSS文件进行更改的方法,并且与上面的简单return语句一样。谢谢您能为我提供的任何帮助。

3 个答案:

答案 0 :(得分:1)

Flask检测到本地文件更改,但不会将更改推送到浏览器。 Flask和浏览器完全脱钩,Flask站在那儿等待请求,只有在收到请求后才响应。 return 'Hello'之后,浏览器与Flask之间的连接将断开。

如果您不向Flask提出请求,则Flask无法将回复发送给您。

答案 1 :(得分:0)

我认为浏览器不应该自己重新加载信息-您必须刷新页面以显示新内容,除非您已使用某种后端应用程序内置了该功能。

答案 2 :(得分:0)

您可以使用https://github.com/lepture/python-livereload创建一个livereload调试服务器,该服务器可以自动刷新浏览器。

相关问题