我想在Flask应用程序的静态文件夹中动态更改JavaScript文件。
我知道Jinja2可以使用{{ var1 }}
和render_template(file.html, var1 = x)
动态更改我的HTML文件,但我希望Flask能够访问HTML导入的脚本并更改它们,而不需要JavaScript在HTML模板中。
Flask是否支持此功能,或者我是否只需将我想要动态更改的JavaScript动态放入HTML文件并使用render_template
?
答案 0 :(得分:1)
没有。您必须将JavaScript的动态部分移动到html文件中。
当Jinja2呈现模板文件时,唯一正在读取的文件是render_template指定的文件。在你的情况下是file.html
。换句话说,flask只提供HTML。您的静态JS文件可能由flask提供,它不由模板引擎处理。
最干净的解决方案可能是调用init函数来初始化你想要从html设置的任何变量,如下所示:
<script type="text/javascript" src="/static/sripts/example.js" />
<script type="text/javascript">
exampleInitFunction({{var1}});
</script>