模板文件更改时重新加载Flask应用程序

默认情况下,当使用内置服务器(Flask.run)运行Flask应用程序时,它会监视其Python文件,并在其代码更改时自动重新加载应用程序:

*检测到“/home/xion/hello world/app.py”中的更改,正在重新加载
*使用重新加载程序重新启动

不幸的是,这似乎只适用于*.py文件,我似乎找不到任何方法将此功能扩展到其他文件。最值得注意的是,当模板发生更改时,让Flask重新启动应用程序将非常有用。我已经记不清有多少次我在模板中摆弄标记,并因为没有看到任何更改而感到困惑,结果发现应用程序仍然使用旧版本的Jinja模板

那么,有没有一种方法可以将Flask monitor文件放在templates目录中,或者需要深入到框架的源代码中

编辑:我正在使用Ubuntu 10.10。还没有在其他平台上尝试过


在进一步查询之后,我发现模板中的更改实际上是实时更新的,而无需重新加载应用程序本身。但是,这似乎只适用于传递到flask.render\u template的模板

但碰巧在我的应用程序中,我有很多可重用的、参数化的组件,我在Jinja模板中使用这些组件。它们被实现为{%macro%}s,驻留在专用的“模块”中,并被{%import%}嵌入到实际页面中。一切都很好,很干燥。。。除了那些导入的模板显然从未检查过修改,因为它们根本不通过render\u template

(奇怪的是,通过{%extends%}调用的模板不会发生这种情况。至于{%include%},我不知道,因为我没有真正使用它们。)

总而言之,这一现象的根源似乎在金贾和烧瓶或Werkzeug之间。我想这可能会让我有理由去bug tracker看看这两个项目:)同时,我接受了jd.的答案,因为这是我实际使用的解决方案,它就像一个符咒一样有效

你可以用

模板\u自动\u重新加载=真

从http://flask.pocoo.org/docs/1.0/config/

是否检查模板源的修改并自动重新加载。默认情况下,该值为“无”,这意味着Flask仅在调试模式下检查原始文件

发表评论