有没有可以插入方法调用的Python模板系统?

时间:2019-05-07 20:36:23

标签: python

需要一个Python模板引擎,该引擎可以从模块进行方法调用,而不是获取静态dict值。

我正在将一些代码从Perl移植到Python。在原始代码中,
我将经过祝福的哈希对象传递给Template Toolkit来格式化输出。
当您在模板中调用这样的值时...

[% name %]                                                                  

...它将调用动态对象方法...

$feature->name()                                                            

有人可以推荐一个遵循相同功能的强大模板系统吗?
开发模式?多数人似乎期望字典中预先填充了一组
静态值。相反,我想将模板实例化传递给
模块,使用如下模式:

ft = Feature()                                                              
...                                                                         
output = runSomeTemplatingEngine(templateString, ft)

2 个答案:

答案 0 :(得分:0)

在上述字典中,您可以轻松地传递对象并访问其方法。

答案 1 :(得分:0)

尝试Qree(读为“居里”)。它依靠exec()eval(),因此支持所有语言功能。

在Qree模板中,您可以导入模块,分配变量,调用函数等。您可以做所有事情。

警告::由于Qree使用eval(),因此应用于呈现不受信任的模板。

注意:我是Qree的作者。