Django:切换到Jinja2?

我有几个很小的(500或600行模板代码)Django站点,我想将它们迁移到使用Jinja2 …但我想知道它将会有多less工作。 那么,一般来说,将一个小的Django站点迁移到Jinja2需要多less工作? 这是“值得吗”?

虽然这只是我自己的经验,但我发现从Django转换到Jinja2是值得的,原因如下:

  1. Jinja2的devise和实现对我来说似乎更加直观,无论是作为软件开发人员还是模板devise人员,
  2. Jinja2更具可扩展性(至less在我试图扩展我的模板引擎方面);
  3. Jinja2在允许运行逻辑代码方面更加灵活(但是它给了你足够的绳索来挂靠);
  4. Jinja2被认为速度更快(虽然我没有做任何基准testing,但是这总是受到讨论的影响,这取决于所使用的testing,而且在任何情况下,对于查询必须进行数据库查找的总等待时间无关紧要)。
  5. Jinja2比Django提供了更多有用的错误输出(即跟踪发生错误的模板中的行号)。 编辑 :根据Dor的评论,Django给出了有用的错误信息,指向问题的线条和上下文,就像Jinja2一样。

如果你对Django的模板引擎没有任何问题,Jinja2应该感觉相对直观,如果可能更精美(或者对我来说,无论如何)。 同样,我发现Coffin项目在Django转换到Jinja2时是合理有用的 – 既可以使用,也可以作为扩展Jinja2的一个例子。

所有这一切,Django的模板引擎是坚实的,相当有能力的大部分任务。 我相信在Django的下一次修订中它正在得到改进,并且有相当多的专门开发人员为它的function添加了很多功夫。 因此,不用担心在近期或中期的未来将不会得到支持。

再次,这只是我的经验,因为它是值得的 – 我希望这是有帮助的。

还有django-jinja。 https://github.com/niwibe/django-jinja

新的和漂亮的项目。 http://niwibe.github.io/django-jinja/

它声称是一个简单的,无阻碍的与Django的jinja2集成。

两个试图将Django中的Jinja集成到简单的集成步骤并与Django完美结合的项目 –

  1. 棺材
  2. Chouwa

我正在整合他们马上试验,如果他们也与Django的pipe理,如Django的贡献应用程序。 但我觉得,它将可用于项目应用程序和Django默认模板系统将用于内部应用程序,如pipe理员。

从你说的话来说,迁徙到Jinja2可能是不值得的。 在Django模板中有filter可以帮助你做任何math操作。

关于列表操作,你到底在说什么? 如果您希望在模板中支持某些特定的列表操作,则可以编写自定义filter 。

Django也有一些现有的第三方mathfilter 。

如果你仔细想想,Django模板在devise上并没有太多的“编程构造”。 HTML模板应该是这样的…