默认情况下,当使用内置服务器(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仅在调试模式下检查原始文件