从字符串加载Jinja模板并从文件扩展
我有以下代码:
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
。