在Django中使用Jinja2模板的任何缺点或陷阱?

Sov*_*iut 23 django templates frameworks django-templates jinja2

阅读Jinja2文档后,我有兴趣在将来的Django项目中使用它.但是,我想知道是否有人在使用Django的Jinja2模板时遇到任何缺点或陷阱?如果是这样,你是如何解决它们的?

我也不介意听到积极的经历,只是为了获得Jinja2最好和最差的好横截面.

Joe*_*way 13

我在一些项目中使用Jinja2,并且喜欢它给我的额外表现力.我可以将我的表示逻辑和应用程序逻辑分开,但我不必向后弯腰调用我专门为我的表示层设计的函数/方法.

除了已经被其他海报列出的内容之外,以下是我发现的一些内容:

  • Admin应用程序与Django模板紧密耦合
  • Auth应用程序(以及其他地方)附带的默认视图和装饰器与Django模板相关联,因此如果要使用Jinja2模板进行登录/注销/等,则可能需要重复工作.

行为上,Django模板默认会逃避输出,而Jinja2则不会.我认为任何一种方法都有其自身的优点,但如果你在两者之间切换,你必须牢记这一点.

  • 但是,要明确的是,Jinja 2中默认的HTML转义只是一个配置选项. (5认同)

Van*_*ale 5

我还没有将Jinja2与实际的Django网站一起使用,但我确实将使用Django模板的应用程序在独立模式下转换为Jinja2模板.我遇到的唯一(非常小的)问题是缺少{%spaceless%}模板标记.

  • 万一你还没有看到Armin的文章http://lucumr.pocoo.org/2008/9/16/why-jinja-is-not-django-and-why-django-should-have-a-look- at-it你应该读它.在顶部,他有一个链接到一个项目转换django-> jinja2.它不能做自定义标签,所以我想它们都需要重写. (7认同)
  • 对于任何寻找的人来说,Jinja2实际上已将此功能作为其模板标记语法的一部分内置:http://jinja.pocoo.org/docs/templates/#whitespace-control (5认同)