【问题标题】:Which template technology should I use with CherryPy? [closed]我应该在 CherryPy 中使用哪种模板技术? [关闭]
【发布时间】:2025-12-03 05:45:01
【问题描述】:

我正在使用cherrypy构建一个Web应用程序。

你推荐我使用什么模板技术?

【问题讨论】:

  • 嗯?定义“查看技术”?从技术上讲,“浏览器”会回答您的问题。
  • 你是说模板引擎吗?
  • 这个 wiki 是对您问题的详细(并且希望是最新的)答案。

标签: python templates template-engine cherrypy


【解决方案1】:

你的意思是 MVC 中的视图吗?我推荐你非常好的模板引擎Jinja2

【讨论】:

    【解决方案2】:

    如果您指的是模板引擎,我已经将mako 与cherrypy 结合使用取得了一些成功。他们似乎在一起玩得很好。

    Mako 非常容易上手和定制,我认为这也是您选择cherrypy 的两个主要原因。 cherrypy官方教程也用到了mako,你可以在那里看到一个simple sample application

    【讨论】:

      【解决方案3】:

      我喜欢Cheetah

      【讨论】:

      • 我也喜欢它,但是使用 $ 表示变量使得在页面中包含 jQuery、Prototype 等变得更加困难。尽管您的大部分 JS 应该在静态 .JS 文件中,但有些总是需要在 HTML 中。
      【解决方案4】:

      我喜欢源氏。

      我喜欢它的一个原因很简单,与其他流行的模板引擎的文本级语法相比,当与 HTML 混合时,XML 语法对我来说看起来更干净。例如,能够粘贴 py:for 属性以输出表格而不是嵌套凌乱的 #if 或任何行,这很好。

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

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

      【讨论】:

      • 这是一个很好的总结,符合我的观点。我唯一要补充的是语法使用 XHTML 而不是简单地生成它,即使是未经处理的模板也可以直接被其他XML 和XHTML 工具使用。有些模板甚至可以直接在浏览器中打开并进行预览。此外,由于它是正确的 XML,模板可以很容易地由其他引擎生成或用于为其他引擎生成模板。我使用 Genshi 生成 JSPX 页面,既轻松又优雅。
      【解决方案5】:

      Zen master 可能会回答:“是”。

      如果您正在构建一个 Web 界面,我会选择一个提供可读标记模板的引擎,例如 Genshi。

      如果您正在构建一个休息服务器并需要返回其他类型的数据,我会使用更面向文本的引擎之一,例如 Cheetah 或 Mako。

      对于构建 HTML 页面,我更喜欢 Genshi 而不是 Cheetah 或 Mako,即使它有点慢。返回 JSON 时,我更喜欢更快的基于文本的引擎。

      而且由于 Cherrypy 与引擎无关,如果需要,您可以同时使用两者。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          最近更新 更多