在jinja2 temp中只包含一次文件

2024-04-20 10:47:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以防止一个文件在模板中多次包含吗?在

以下是一些(损坏的)示例代码:

# test.py
import jinja2

ENV = jinja2.Environment(loader=jinja2.FileSystemLoader('.'))

template = ENV.get_template('template.html')
print template.render({})

模板如下所示:

^{pr2}$

如您所见,我已经包含jquery两次(oops)。我希望我能做一些与C预处理器类似的事情:

{% if _JQUERY is defined %}
{% else %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
{% set _JQUERY = 1 %}
{% endif %}

但这似乎行不通。这里有干净的解决方案吗?在

我这样做的原因是因为我有多个组件——每个组件都有自己的include文件,其中包含使用该组件所需的所有内容。目前,我正在将JQuery从include文件中分解出来,但是随着依赖关系的增长,这可能会变得很乏味,并且多次包含JQuery会导致一些脚本中断。在


Tags: 文件代码testenv模板jinja2示例include