这是我通常用来渲染文件的方法pystache
:
txt = open(filename, 'r').read()
print pystache.render(txt, context).encode('utf-8')
(“上下文”是我的映射)
但现在我必须渲染非常大的模板。有没有建议的方法来做到这一点,而无需将整个模板读入内存?pystache 对此有内部支持吗?
在撰写本文时,github 页面上有一个关于此的问题。一旦我有时间遵循这个,我会的。
Pystache 没有对模板流的内置支持,但它是开源的,因此如果此功能是您的用例的优先事项,我建议您分叉源并自己实现它。老实说,我认为修改源代码以选择性地接收模板生成器会很容易,该生成器将返回文本行,而不是接收完整的模板文本。
* 最简单的解决方案可能是将您的大模板分解为多个子模板并通过部分引用它们。*
您可能对通过 mustache.js 允许mustache.js的块进行模板渲染感兴趣