而不是我花费第二天(或一年)阅读所有这些内容,有没有关于模板引擎的建议,我应该更详细地研究一下?

有帮助吗?

解决方案

最佳建议:全部尝试。不会花很长时间。

我的最爱: Jinja2 (一英里)

它具有良好的语法,可以通过它跟踪错误,并且是可沙箱的。

其他提示

如果您正在进行代码生成,您可能会发现 Cog 非常有用 - 它专门用于代码生成而不是一般的适用模板语言。

最重要的问题是您是否可以使用模板所需的语法。第二和第三(取决于您的应用需求)将是速度和易于分发。

我查看了所有这些,但我能忍受的唯一语法是 Jinja 。 Jinja具有支持大量Python构造的优势,因此可以根据需要向模板添加功能片段,而无需编写特殊标记。大多数需要其他模板系统中的标签的内容都由Jinja的宏处理。

当然,如果你正在寻找简单快捷的东西,很难击败 Python模板API

更新:孩子似乎已被 Genshi 取得成功。

我使用过Kid,这是我认为较旧的系统之一。我发现它非常坚固,稳定可靠。它是基于标签的,所以使用XML / HTML很好。有趣的是模板函数是作为HTML属性完成的,而不是特殊的块,即{%...%}。然而,某些方面(特别是它'包括'的方式)可能会变得非常令人厌烦。它似乎也没有积极发展或根本没有发展。

值得一看,如果你想要的东西已经存在了一段时间并且变得非常稳定。如果你想要更新的东西,我听说过关于Genshi和Jinja的好东西。

我喜欢 Clearsilver ,因为它适用于多种不同的语言,并严格执行数据和演示文稿之间的分离。我之前使用的是Cheetah,虽然它非常好,但我不喜欢使用有时看似有限形式的Python的东西。

如果您正在使用X [HT] ML,那么基于标签的模板系统之一可以为您提供格式良好的模板,这是一个很好的举措。我使用 PXTL ,FWIW。 (它可以产生其他格式,但如果你的重点不是XML或HTML,它就不是一个明智的选择。)

我非常不喜欢模仿系统,声称可以帮助你分离业务逻辑和演示文稿”通过将表达限制为他们自己的小语言。他们似乎并不理解存在诸如表示逻辑之类的东西,并且它有时会变得足够复杂,需要像Python这样的真实语言才能运行它。使用业务逻辑将您的演示逻辑踢出到应用程序所以不是胜利。避免!

(有限的表达式单独的迷你语言方法在JSP的‘ EL’中有一定意义,因为Java在模板库中使用起来太烦人了。但我们有Python!它非常适合写作模板中的表达式就是这样;切断功能并让用户学习另一种新语言不会让你获益。)

如果您想要非常轻量级的选项,请尝试使用模板。它只有单个模块中的80行代码。看看这里这里(它发布在博客中)。如果功能足够你,我认为这是一个聪明且非常集中的解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top