【发布时间】:2011-06-27 23:10:19
【问题描述】:
我正在寻找一种成熟、易于使用、功能强大、独立、“漂亮”的 Python 模板系统/语言。我主要对从 HTML 源生成(静态)HTML 感兴趣(因此 Markdown/RST/Textile 不相关)。
似乎有很多选择(Python wiki 有a very long list),这让选择变得相当艰巨。以下是我听说过或使用过的语言,按我个人的熟悉程度排名。
如果有兴趣,请随时将其制作成社区 wiki。
Django
优点:
- 如果您使用过 Django,请熟悉且简单的语法。
- Django 很棒的文档。
- 与逻辑有很大的分离。
- 积极支持和维护。
缺点:
- 并非真正用于独立模式。如果您没有任何
INSTALLED_APPS,我什至不知道加载模板标签库是否有效。 - 与整个 Django 项目的日程安排相关,使得单机使用变得模糊。
- 也许是过于非 Pythonic 的语法。
Jinja2
优点:
- 语法本质上是 Django++
- 可配置语法
- 维护良好
- 良好的文档
Genshi
- XHTML:ish 语法(好还是坏?)
- 因此锁定生成基于 XML 的输出?
- 可以在模板中直接使用 Python (
<?python ... ?>)
Mako
优点:
- 由 Pylons 支持,部署在 reddit.com 等网站上
缺点:
- 语法(乍一看)让我觉得有点不平衡。
<%、%和$?
我认为值得考虑的还有:
- Python 3 兼容性
- 编辑器支持(例如,是否有维护的 TextMate 包?)
我承认我对以下内容一无所知,除了他们有丑陋的网站。
Cheetah
StringTemplate
【问题讨论】:
-
我听到很多人都在讨论 Jinja 和 Genshi ......你有什么具体的争论吗?
-
@vicvicvic:我喜欢 Django/Jinja 语法,因为恕我直言,它对于非程序员 UI 设计师来说更安全/更容易。在 Jinja 中,您可以将参数传递给方法,这是我在 Django 中错过的。
-
我对 Jinja2 有很好的体验,肯定是你需要的。
-
我更喜欢使用函数式风格的纯 Python。
-
运行一个简单的 Django 应用程序并不太令人头疼。您可以在很短的时间内启动并运行一个基本的静态站点,并且无需设置数据库即可利用模板语法。也超级容易插入其他模板系统,甚至可以自己编写。
标签: python html templates template-engine html-generation