gpt4 book ai didi

python - Python 的模板系统或语言(主要是 HTML)

转载 作者:太空宇宙 更新时间:2023-11-04 15:39:29 25 4
gpt4 key购买 nike

我正在寻找一种成熟、易于使用、功能强大、独立、“漂亮”的 Python 模板系统/语言。我主要对从 HTML 源生成(静态)HTML 感兴趣(因此 Markdown/RST/Textile 不相关)。

似乎有一系列选择(Python wiki 有 a very long list ),这让选择变得非常困难。以下是我听说过或使用过的语言,按我个人的熟悉程度排序。

如果有兴趣,请随时将其制作成社区维基。

Django

优点:

  • 如果您使用过 Django,则熟悉且简单的语法。
  • Django 的出色文档。
  • 与逻辑有很大的分离。
  • 积极支持和维护。

缺点:

  • 并不是真正为在独立模式下使用而设计的。如果你没有INSTALLED_APPS,我什至不知道加载模板标签库是否有效。 .
  • 与整个 Django 项目的时间表联系在一起,使得独立使用变得模糊。
  • 可能过于非 Pythonic 语法。

Jinja2

优点:

  • 语法本质上是 Django++
  • 可配置的语法
  • 维护良好
  • 良好的文档

Genshi

  • XHTML:ish 语法(好还是坏?)
  • 因此锁定生成基于 XML 的输出?
  • 可以直接在模板中使用 Python (<?python ... ?>)

Mako

优点:

  • 由 Pylons 支持,部署在 reddit.com 等网站上

缺点:

  • 语法(快速浏览)让我觉得有点不平衡。 <% , % , 和 $

我认为值得考虑的一些事情还有:

  • Python 3 兼容性
  • 编辑器支持(例如,是否有维护的 TextMate 包?)

我承认我对以下内容一无所知,除了他们有丑陋的网站。

Cheetah

StringTemplate

最佳答案

抱歉,还没有代表发表评论,所以我会把这个留作回答。

我只用过 django 和 mako。似乎这两种模板语言之间的主要区别在于 Django 的设计就好像您不能真正信任模板设计者一样。你可以从他们如何限制你被允许在模板中使用的代码中看到这一点,并且他们不允许在模板中使用 python 代码。 (提示关于 python 代码是否属于模板的争论)。对于我的项目,我既是程序员又是设计师,所以 Django 挡住了我的路。

Mako 使用一些辅助函数简单地将模板解析为文本 block 和 Python 代码。这意味着 Mako 的代码要小得多,而且学习起来似乎比 Django 快得多,假设您已经熟悉 python。

例如:我能找到的在 Django 中分配变量的唯一方法是使用 with block :

{% with total=business.employees.count %}
{{ total }}
{% endwith %}

(请注意,business.employees.count 实际上是一个函数 (business.employees.count()))。

而 Mako 中的等效代码是:

<% total = business.employees.count() %>
${total}

Django 大师:请随时纠正我。我的经验有限,但这就是我从 Django 转向 Mako 的原因。

这似乎是对不同模板系统的相当不错的基础比较,如果您只是想了解语法:http://catherinedevlin.pythoneers.com/cookoff.html

关于python - Python 的模板系统或语言(主要是 HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com