以javascript的形式在Jinja2中插入字符串是否正确?

时间:2016-01-10 10:40:37

标签: javascript python string jinja2

我有一个带有Jinja2模板的Flask应用程序。我决定将所有字符串(我希望在网页上显示的静态文本)从模板移动到单独的javascript文件中。此文件在layout.html中加载,我正在插入字符串

<script>document.write(home_call_to_action['card_text']);</script>

如果我想让它们更易读,有没有更好的方法呢? (没有

Mb之类的东西:

{% set print = <script>document.write({{ text }});</script> %}

<b>{{ print.home_call_to_action['card_text'] }}<b>

如果可以将某个变量以某种方式传递给另一个变量/

1 个答案:

答案 0 :(得分:0)

将脚本作为字符串插入将起作用,但这不是“正确”的方法。 您应该做的是将所有脚本放在静态目录中,并使用

链接到layout.html
<script src="path/to/script" type="text/javascript"></script> 

并确保<script></script>代码之间没有任何内容。

修改

我明白你想做什么。要在模板中显示python字符串,您需要将它们作为参数传递给render_template()函数。然后将字符串放在模板中的{{ }}标记内。

Check the step 5 and step 6 of the official flask tutorial.

您还应该检查the official Jinja2 docs.