首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jinja2从模板加载模板文件

jinja2从模板加载模板文件
EN

Stack Overflow用户
提问于 2011-09-08 01:11:19
回答 3查看 30K关注 0票数 32

有没有办法从另一个模板文件中加载jinja2模板?就像这样

代码语言:javascript
复制
{{ render_template('path/to/file.html') }}

我有一些想要重用的代码片段,所以拥有这个功能对我来说很重要。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-08 01:14:30

根据您希望设计多文件视图的方式,使用extends标签或include标签。

票数 12
EN

Stack Overflow用户

发布于 2011-09-08 01:17:45

{% include "file" %}可以做到这一点。有关详细信息,请参阅jinja2 docs

票数 46
EN

Stack Overflow用户

发布于 2018-08-09 16:44:30

您应该使用{% macro -%}制作模板文件,并使用{% import "file" as file %}在其他模板文件中使用宏。请参阅the docs.

下面是一个示例:

代码语言:javascript
复制
<!- 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相同的行为)。

这通常比为每个习惯用法创建一个新的模板要好,或者比使用继承更好,后者是一种特殊情况的解决方案(如果您想在一个模板中多次使用代码片段怎么办)?

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7337814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档