默认django模板系统的替代方案

时间:2011-12-28 15:52:17

标签: python django django-templates

django的默认模板系统最常用的替代方法是什么?

你们有人试过吗?

编辑: 性能怎么样?

6 个答案:

答案 0 :(得分:5)

Jinja2非常类似于Django模板:http://splike.com/wiki/Convert_Django_Templates_to_Jinja2

Mako非常不喜欢Django。

尝试这两个,看看你最喜欢什么方法。

答案 1 :(得分:3)

也许是jinja2:http://lethain.com/replacing-django-s-template-language-with-jinja2/

为什么要替换它?它非常强大,并且有很多内置的支持。如果您已经考虑过特定​​的模板系统,我认为您会想要替换它。

答案 2 :(得分:1)

Jinja2是我所知道的最受欢迎的替代品。最大的区别在于它允许您在模板中添加更多的逻辑和代码:Django的模板系统在这方面是刻意限制的。

我使用过Jinja2并且不得不说我个人更喜欢Django的模板系统,因为它鼓励更清晰的风格,在视图代码中尽可能多地进行处理,使重构和测试更容易。

至于性能,有一个section in the Jinja2 FAQ声称Jinja2和Mako大致相当,两者都比Django的模板渲染器快20倍,但也指出这样的基准测试几乎没有任何意义。

答案 3 :(得分:1)

Coffin项目贡献者正试图为Django Template构建一个完整的替代品。 Coffin api为您加载Django过滤器和标签,因此您可以享受Jinja模板并使用为Django编写的现有Filtes和Tag Libs。 棺材项目得到积极维护。你可以在这里阅读更多参考资料:

  1. justcramer.com/2009/09/14/using-jinja2-with-django /
  2. matthowell.com/blog/2011/03/02/integrating-jinja2-and-django /

答案 4 :(得分:0)

我根本不使用模板,更喜欢纯python OO方法。

为了能够做到这一点,我在Python中编写一个小而有用的库,让我生成任何标记代码。

我可以说这种体验在某种程度上类似于QT这样的工具......显然,我的工具比像QT这样的大工具要小,有一些相似之处,特别是在使用中类和复合模式。

我想很多人会不喜欢我的做法。但是,如果您想看一下,这里是代码的链接:

Pytml framework

答案 5 :(得分:0)

https://pypi.org/project/yawrap/ Templateles,纯pythonic html生成器。它速度快,没​​有依赖关系,可以在python 2.7、3.x和pypy上运行。 以零开销输出理想缩进的html代码(免费缩进)。 无需使用django的标签或过滤器,因为您已经在python中拥有了绝对的所有内容。