我应该使用哪种模板技术与CherryPy一起使用?

11

我正在使用CherryPy构建Web应用程序。

你建议我使用哪种模板技术?


1
什么?定义“视图技术”?从技术上讲,“浏览器”可以回答你的问题。 - SpliFF
你的意思是模板引擎吗? - user447688
这个维基是对你的问题的详细(并且希望是最新的)回答。 - Eric Wilson
6个回答

5
如果您需要一个模板引擎,我用cherrypy使用mako取得了一些成功。它们似乎很好地协同工作。
Mako非常易于入门和定制,这也是您选择cherrypy的两个主要原因,我想。Cherrypy官方教程也使用mako,您可以在那里看到一个简单的示例应用程序

5

您是指MVC中的View吗?我推荐您使用非常好用的模板引擎Jinja2


4

3
我也喜欢它,但使用$符号作为变量会使得在页面中包含jQuery、Prototype等变得更加困难。即使大部分JS应该放在静态的.JS文件中,但有些JS必须放在HTML中。 - jpsimons

3

我喜欢Genshi。

其中一个原因是,与其他流行的模板引擎的文本级语法相比,当将XML语法与HTML混合使用时,它看起来更加清晰。例如,可以轻松地在py:for属性上添加以输出表格,而不是嵌套混乱的#if或其他行。

另一个原因是,因为它基于XML并将您的HTML视为XML,它保证您的标记在语法上是正确的-即标记已关闭并正确嵌套,特殊字符已正确转义等。其他模板引擎将简单地将您的HTML视为文本,并输出您提供的任何内容,而不进行额外的语法检查。

Genshi的主要缺点是它比速度更快的文本引擎要慢得多。然而,对于大多数网站来说,它的性能应该足够好。除非您有一个需要以超快速率呈现文本/HTML的特殊网站,否则Genshi提供的可读性和语法检查可能会抵消性能损失。


这是一个很好的总结,并且符合我的感受。我唯一可能会补充的是,因为语法“使用”XHTML而不仅仅是生成它,即使未处理的模板也可以直接由其他XML和XHTML工具使用。一些模板甚至可以直接在浏览器中打开并预览。此外,因为它是正确的XML,模板可以很容易地被其他引擎生成或用于为其他引擎生成模板。我使用Genshi来生成JSPX页面,非常轻松和优雅。 - Jason R. Coombs

2
一个禅师可能会回答:“是的。”
如果您正在构建Web界面,我会选择提供可读标记模板的引擎,例如Genshi。
如果您正在构建REST服务器并需要返回其他类型的数据,则应选择更加文本导向的引擎之一,例如Cheetah或Mako。
对于构建HTML页面,即使速度较慢,我仍更喜欢Genshi而不是Cheetah或Mako。当返回JSON时,我更喜欢速度更快的基于文本的引擎。
由于Cherrypy是引擎不可知的,因此如果需要,可以同时使用两者。

0

还有Genshi 他们的教程是基于使用cherrypy的


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接