Jinja2 api:如何获取模板的继承模板?

时间:2015-12-26 02:14:00

标签: python jinja2

模板文件:

{% extends "base.html" %}

模板的加载方式如下:

env = Environment(loader = FileSystemLoader(['_templates']))
template = env.get_template('test.html')

如何从template变量中获取父模板对象,即" base.html"的模板?

1 个答案:

答案 0 :(得分:3)

您可以解析模板源并找到Extends节点。有关详细信息,请参阅AST documentation

from jinja2.nodes import Extends

env = Environment(loader = FileSystemLoader(['_templates']))
template_source = env.loader.get_source(env, 'test.html')[0]
parsed_template = env.parse(template_source)
extends_node = parsed_template.find(Extends)
parent_name = extends_node.template.value
parent_template = env.get_template(parent_name)