从字符串加载Jinja模板并从文件扩展

2 投票
1 回答
2738 浏览
提问于 2025-04-17 15:49

我有以下代码:

from jinja2 import Template
templ_str = "lots of garbly html" # Compiled by external logic
templ_context = ast.literal_eval(context_dir)  # Compiled by external logic
template = Template(templ_str)
template.render(**context)

这个模板的内容是动态编译的,然后传递给模板引擎。不过,我想在这个模板外面加一个基本的包装,包装的内容来自一个文件。我知道可以用FileSystemLoader来实现,但我需要从内存中加载我的主模板,而不是从文件中。

从API文档来看,这似乎是做不到的。有其他解决办法吗?

1 个回答

2

我觉得你可以用一个 ChoiceLoader 来解决这个问题。首先,把你生成的模板放进一个 DictLoader 里,然后用这个 DictLoader 和一个合适的 FileSystemLoader 来设置 ChoiceLoader

撰写回答