gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:36:13 24 4
gpt4 key购买 nike

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

* Detected change in '/home/xion/hello-world/app.py', reloading
* Restarting with reloader

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

那么,有没有办法在 templates 目录中放置 Flask 监视器文件,或者是否需要深入研究框架的源代码?

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


经过进一步查询,我发现模板中的更改确实实时更新,无需重新加载应用程序本身。然而,这似乎只适用于那些传递给 flask.render_template 的模板。

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

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

总而言之,这种现象的根源似乎介于 Jinja 和 Flask 或 Werkzeug 之间。我想这可能需要为这些项目中的任何一个进行错误跟踪器之旅:) 同时,我已经接受了 jd. 的回答,因为这是我实际使用的解决方案 - 而且它很有魅力.

最佳答案

你可以使用

TEMPLATES_AUTO_RELOAD = True

来自 http://flask.pocoo.org/docs/1.0/config/

Whether to check for modifications of the template source and reload it automatically. By default the value is None which means that Flask checks original file only in debug mode.

关于python - 模板文件更改时重新加载 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50666852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com