python flask 即时刷新
本篇博客补充一个小细节,即爬虫训练场项目修改模板代码之后,每次都要重启服务查看效果,如何才能更加便捷。
爬虫训练场学习地址:https://blog.csdn.net/hihell/category_12148273.html
解决方案一
问题描述
在项目实战的时候,由于我们使用的是 Python Flask 框架,每次修改前端 HTML 页面之后,都要重启一下 flask 服务,然后查看效果,非常不方便。
针对该问题,本篇博客提供两个解决方案。
解决方案:增加模板自动重载配置
打开程序主入口文件,在爬虫训练场这一项目中,入口文件为
playground.py
,添加如下代码。
app.jinja_env.auto_reload =True
该配置表示模板修改后,立即生效,无需重启,行业内一般叫做热更新。
使用如下配置也可。
app.config['TEMPLATES_AUTO_RELOAD']=True
额外的解决方案
实战中还可以使用 manager 管理工具实现自动刷新页面,或者安装第三方模块 livereload 进行实现,后续用到这部分内容,我们继续进行补充。
解决方案二
在 Python Flask 中实现热更新需要使用第三方库,如
Flask-Reloader
。
Flask-Reloader
是一个 Flask 插件,可以在开发环境中实现热更新,当代码发生改变时会自动重启服务器。
模块的安装非常简单,使用 pip 命令即可。
pip install Flask-Reloader
基本使用流程如下所示。
导入 Flask-Reloader
from flask_reloader import Reloader
实例化 Reloader
reloader = Reloader()
使用 Reloader
if __name__ =="__main__":
reloader.init_app(app)
app.run()
在上面的代码中,我们首先实例化了 Reloader 对象,然后使用
init_app()
方法将其初始化到了 Flask 应用中。如果在运行时代码发生了改变,Reloader 会自动重启服务器。
解决方案三
实战中还可以使用 Werkzeug 的
run_with_reloader
函数。
Werkzeug 是 Flask 的底层 WSGI 引擎,提供了
run_with_reloader()
函数来实现热更新。
使用 Werkzeug 的
run_with_reloader()
函数的方法如下:
from werkzeug.serving import run_with_reloader
if __name__ =='__main__':
run_with_reloader(app.run)
上述代码中
app.run
是 flask 程序的入口函数,在运行时代码发生了改变,
run_with_reloader()
会自动重启服务器。
版权归原作者 梦想橡皮擦 所有, 如有侵权,请联系我们删除。