当前位置:   article > 正文

【小知识点】爬虫训练场项目,Python Flask 模板更新,每次都要重新服务_flask更新代码要重启

flask更新代码要重启


本篇博客补充一个小细节,即爬虫训练场项目修改模板代码之后,每次都要重启服务查看效果,如何才能更加便捷。

爬虫训练场学习地址:https://blog.csdn.net/hihell/category_12148273.html

解决方案一

问题描述

在项目实战的时候,由于我们使用的是 Python Flask 框架,每次修改前端 HTML 页面之后,都要重启一下 flask 服务,然后查看效果,非常不方便。

针对该问题,本篇博客提供两个解决方案。

解决方案:增加模板自动重载配置

打开程序主入口文件,在爬虫训练场这一项目中,入口文件为 playground.py,添加如下代码。

app.jinja_env.auto_reload = True
  • 1

该配置表示模板修改后,立即生效,无需重启,行业内一般叫做热更新

使用如下配置也可。

app.config['TEMPLATES_AUTO_RELOAD'] = True
  • 1

额外的解决方案

实战中还可以使用 manager 管理工具实现自动刷新页面,或者安装第三方模块 livereload 进行实现,后续用到这部分内容,我们继续进行补充。

解决方案二

在 Python Flask 中实现热更新需要使用第三方库,如 Flask-Reloader

Flask-Reloader 是一个 Flask 插件,可以在开发环境中实现热更新,当代码发生改变时会自动重启服务器。

模块的安装非常简单,使用 pip 命令即可。

pip install Flask-Reloader
  • 1

基本使用流程如下所示。
导入 Flask-Reloader

from flask_reloader import Reloader
  • 1

实例化 Reloader

reloader = Reloader()
  • 1

使用 Reloader

if __name__ == "__main__":
    reloader.init_app(app)
    app.run()
  • 1
  • 2
  • 3

在上面的代码中,我们首先实例化了 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)

  • 1
  • 2
  • 3
  • 4
  • 5

上述代码中 app.run 是 flask 程序的入口函数,在运行时代码发生了改变,run_with_reloader() 会自动重启服务器。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/463210
推荐阅读
相关标签
  

闽ICP备14008679号