使用Python开发Flask应用时如何自动刷新浏览器?

发布于 2021-01-29 16:57:13

我已经开始学习Flask来开发Web应用程序。我真正想念的是 任何
代码更改(包括静态文件,模板等)之后,浏览器都会自动刷新。这似乎是几乎所有Javascript框架中的标准功能。前端人员对此有以下几个术语:自动重新加载/刷新,热重新加载/刷新(hotreload),实时重新加载/刷新(livereload),…

J只是想要一个简单的浏览器刷新。

我用谷歌搜索并尝试了几件事-没有运气:

我如何才能在使用Flask时获得平稳的开发体验,而不必每天在浏览器中按F5键1000次才能查看更改结果?

我认为答案python-livereload离上面的链接很近。所以我想我的问题的替代标题可能是:

有人有Flask + python-livereload的有效示例吗?

我很傻,从他们的文档中获取它:)

编辑:为了完整起见,这里是我正在使用的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
关注者
0
被浏览
145
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您提出了一个有趣的问题,因此我构建了一个快速且肮脏的Flask应用程序,该应用程序使用livereload库。下面列出了使它起作用的关键步骤:

    1. 下载并安装livereload库:

    pip install livereload

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

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

    from app import app
    from livereload import Server
    
    if __name__ == '__main__':
        server = Server(app.wsgi_app)
        server.serve()
    
    1. 重新启动服务器:

    python run.py

    1. 在浏览器中导航到localhost,您的代码更改将自动刷新。对我来说,我把由livereload提供的,所以我的网址如下所示的5500的默认端口:http://localhost:5500/

    通过这些步骤,您现在应该可以在Python开发中利用自动重装功能,类似于webpack为大多数前端框架提供的功能。

    为了完整起见,代码库可以在这里找到

    希望有帮助!



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看