有没有办法从另一个模板文件中加载jinja2模板?就像这样
{{ render_template('path/to/file.html') }}我有一些想要重用的代码片段,所以拥有这个功能对我来说很重要。
发布于 2011-09-08 01:14:30
根据您希望设计多文件视图的方式,使用extends标签或include标签。
发布于 2011-09-08 01:17:45
{% include "file" %}可以做到这一点。有关详细信息,请参阅jinja2 docs。
发布于 2018-08-09 16:44:30
您应该使用{% macro -%}制作模板文件,并使用{% import "file" as file %}在其他模板文件中使用宏。请参阅the docs.
下面是一个示例:
<!- 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) }}具体地说,这个答案允许OP将参数传递给他的宏,类似于他想要的行为,比如render_template的行为(上面提到的简单地包括文件并不能实现与render_template相同的行为)。
这通常比为每个习惯用法创建一个新的模板要好,或者比使用继承更好,后者是一种特殊情况的解决方案(如果您想在一个模板中多次使用代码片段怎么办)?
https://stackoverflow.com/questions/7337814
复制相似问题