有没有办法可以从另一个模板文件中加载jinja2模板?就像是
{{ render_template('path/to/file.html') }}
Run Code Online (Sandbox Code Playgroud)
我有一些我想重用的片段,所以拥有这个功能对我来说很重要.
您应该使用{% macro -%}s 制作模板文件,并使用{% import "file" as file %}来使用其他模板文件中的宏。参见文档。
这是一个例子:
<!- in common_macros.html ->
{% macro common_idiom1(var1, var2, ... varN) -%}
<!- your idiom, where you can use var1 through varN ->
{%- endmacro %}
<!- in my_template.html ->
{% import "common_macros.html" as idioms %}
{{ idioms.common_idiom1(a, b, ... N) }}
Run Code Online (Sandbox Code Playgroud)
具体来说,此答案允许OP将参数传递给他的宏,这与他想要的行为类似,例如render_template的行为(如上面的先前答案所述,仅包含文件并不能实现与render_template相同的行为)。
通常,这比为每个习语制作一个新的模板好,或者比使用继承(这是一种特殊情况的解决方案)更好(如果要在一个模板中多次使用摘要,该怎么办)?
| 归档时间: |
|
| 查看次数: |
20182 次 |
| 最近记录: |