python - 使用 jinja2 模板指令加载外部脚本

标签 python templates scripting jinja2 external

我对 jinja2 和一般模板的使用非常陌生,所以我想知道是否有一种简单的方法可以加载外部 javascript。我正在考虑使用:

{% block javascript %}
    <script src="myscript.js"></script>
{% endblock %}

但我忍不住要问:

有没有办法直接从模板指令中加载这个脚本?

最佳答案

你有两个选择——第一个是你做的方式——只需将适当的标记添加到模板中(或者如果你希望能够在扩展你的第一个模板的模板中覆盖它,则添加一个 block 。)

第二种方法是使用Jinja2的include功能:

{% block javascript %}
    <script type="text/javascript">
        {% include "myscript.js" %}
    </script>
    <!-- The contents of myscript.js will be loaded inside the script tag -->
{% endblock %}

使用 include 的优点是 Jinja2 会在包含之前处理您的 javascript —— 这意味着您可以在 javascript 中拥有根据程序状态而变化的变量。

以这种方式使用 include 的缺点是相同的——你的 .js 文件将在发送出去之前通过 Jinja2 运行——如果你不使用动态内容,您只会为每个请求不必要地处理文件——如果您使用的是带有 Jinja2 语法的 javascript 模板库,那么很可能会出现问题。

关于python - 使用 jinja2 模板指令加载外部脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412275/

相关文章:

python - python中的列表列表?

python - 阐明 python del 如何处理列表和切片

C++11 Lambda 模板推断

c++ - 包括模板函数

javascript - 在 &lt;script id ="template-download"type ="text/x-tmpl"> 中嵌入 javascript

Bash 历史重新运行 : possible command to avoid using ! bang!?

python - 如何使用openpyxl获取位置(行,列)单元格的值?

shell - grep 在目录中,并为 Unix Shell 脚本中的每个文件仅返回 1 个结果

shell - 使用 Get-Content 时 Powershell 终端颜色输出不正确,为什么?

python - 在 Python 中初始化/创建/填充字典的字典