|
以前在web.py里用过cheetah和mako
cheetah效率高,但实在太老了,不好用
mako效率也很高,编译成pyc的,但是有个小缺点就是他是额外定义标签,复杂结构的html代码会较长
后来使用Turbogears2.0,它的默认模板引擎是Genshi,就用了一段时间。(当然Turbogears2.0也可以使用mako,需要小小的修改一下配置文件)
Genshi是完全基于xml的引擎,标签都是定义在html标签中,例如<div py:if="condition" />,写起来很优雅,节省代码
但是他的结构是自下而上的,具体页面采用xpath语言来选择模板页面相应的部分来装饰本页面,理解起来使用起来很复杂,也许用好了会非常强大,但我到现在都没有完全用好。
而且Genshi的效率虽然比它的前辈kid要高,但比起mako和cheetah实在太低,特别是复杂页面更是没得比。
而且Genshi是xml的,只能用来生成html,而mako是文本模板,可以用来生成任何模板,所以mako的用途更广
现在Turbogears2.1a 在生成项目的时候可以直接选择使用mako模板,就不用自己再改配置了,所以顺势就换用mako
发现还是mako好使,genshi那种高级玩意还是整不来,还是这种自上而下的继承方式来的实在,清楚。 |
|