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

3

一个模板文件:

{% extends "base.html" %}

模板可以按照以下方式加载:
env = Environment(loader = FileSystemLoader(['_templates']))
template = env.get_template('test.html')

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

1个回答

3

您可以解析模板源代码并查找Extends节点。有关详细信息,请参见AST文档

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接