如何在使用Python开发Flask应用程序时自动更新浏览器?

如何在使用Python开发Flask应用程序时自动更新浏览器?,python,flask,refresh,livereload,hot-reload,Python,Flask,Refresh,Livereload,Hot Reload,我已经开始学习开发web应用程序。我真正缺少的是在任何代码更改(包括静态文件、模板等)后自动刷新浏览器。这似乎是几乎所有Javascript框架的标准特性。前端用户对此有几个术语:自动重新加载/刷新、热重新加载/刷新(热重新加载)、实时重新加载/刷新(livereload) 在Stackoverflow上,大多数类似的问题都与Flask服务器的自动重新加载(->)有关 J只需要简单的浏览器刷新。 我在谷歌上搜索并尝试了几件事——但运气不佳: 我怎样才能顺利地使用Flask进行开发,而不必

我已经开始学习开发web应用程序。我真正缺少的是在任何代码更改(包括静态文件、模板等)后自动刷新浏览器。这似乎是几乎所有Javascript框架的标准特性。前端用户对此有几个术语:自动重新加载/刷新、热重新加载/刷新(热重新加载)、实时重新加载/刷新(livereload)

在Stackoverflow上,大多数类似的问题都与Flask服务器的自动重新加载(->)有关

J只需要简单的浏览器刷新。

我在谷歌上搜索并尝试了几件事——但运气不佳:

我怎样才能顺利地使用Flask进行开发,而不必每天在浏览器中按F5键1000次来查看更改的结果

我认为答案就在上面链接的
pythonlivereload
附近。 所以我想我问题的另一个标题可能是:

有人有Flask+python LiveroAD的工作示例吗?

从他们的文档中得到它,我简直是哑巴:)

编辑:为了完整起见,这里是我正在使用的Flask应用程序

# filename: main.py

from flask import Flask, render_template
from livereload import Server



app = Flask(__name__)

@app.route('/')
def index():
    return "INDEX"

@app.route('/bart')
def use_jinja():
    return render_template('basic.html')



if __name__ == '__main__':
    server = Server(app.wsgi_app)
    server.serve(port=5555)
我用

python main.py

这是您提出的一个有趣的问题,因此我构建了一个快速而肮脏的Flask应用程序,它利用livereload库。下面列出了实现此功能的关键步骤:

  • 下载并安装livereload库:

    pip安装livereload

  • 在启动flask应用程序的主文件中,
    run.py
    在我的特殊情况下,使用livereload提供的
    Server
    类包装flask应用程序

  • 例如,我的
    run.py
    文件如下所示:

    from app import app
    from livereload import Server
    
    if __name__ == '__main__':
        server = Server(app.wsgi_app)
        server.serve()
    
  • 再次启动服务器:

    python run.py

  • 在浏览器中导航到localhost,您的代码更改将自动刷新。对我来说,我使用livereload提供的默认端口5500,因此我的url如下所示:
    http://localhost:5500/

  • 通过这些步骤,您现在应该能够利用python开发中的自动重新加载功能,类似于webpack为大多数前端框架提供的功能

    为了完整性,可以找到代码库

    希望这有帮助

    如果在Windows上:

    set FLASK_ENV=development
    

    听起来不错,我将把我的示例代码放在一个公共github上,这样就很容易测试了you@NathanI我还没有看过你的代码,但我知道它部分是在Linux虚拟机上运行的。将在一个真正的Linux主机上签出您的代码。非常感谢:)@Wlad让我们看一下我是如何构造应用程序的:run.py启动应用程序,app目录中的init.py文件创建flask应用程序。至于你的第二点,当你做出改变时,确保你保存文件,因为这标志着将资产重新加载到LIVELLoad,类似于前端框架如何与WebPACK一起工作。最简单的路径和我将要做的事情如下:1。克隆我创建的repo 2。使用pip安装-r requirements.txt 3下载/安装依赖项。使用:python run.py运行该应用程序,看看该应用程序现在是否适合您。通过这种方式,您可以隔离问题,并立即知道您的代码或环境设置是否存在问题。我正在Mac上开发,但它不应该是matterHi@Wlad,看起来这是一个开放的问题:。也许您可以尝试降级或重新启动服务器以进行路由相关更改。干杯