【发布时间】:2013-08-21 11:17:11
【问题描述】:
遵循 Don't Repeat Yourself 原则 (DRY),我重构了我正在使用的 Django 模板。
我在 for 循环中包含模板,而每个包含的模板又可以包含零个或多个模板。
我不知道这是否会是性能问题或Django自动缓存模板,一旦使用{% include %}包含一个,那么每次相同的模板(文件)都不需要访问HDD包括在内。
当您在 Python 上重新导入某些内容时,它并没有真正重新导入,而是在已经导入的模块中查找。所以,我想知道 Django 是否使用类似的方法。
【问题讨论】:
-
我的建议很简单……如果您需要性能,请使用 Jinja2 而不是 Django 作为模板解析器。尽管 Django 模板解析器在过去几年中得到了显着改进,但与 Jinja2 相比仍然相当缓慢。
-
另外,就 DRY 而言。使用 Jinja2,您可以使用使这些类型的模式非常简单和可重用的宏。它们就像您可以导入的模板中的 Python 函数。
-
我会记住这一点的。我喜欢 Jinja2 的地方在于,您可以将参数传递给 Django 模板中的方法,而您不能:(
-
与数据库访问相比,模板的加载速度通常更快。如果您要使用数据库中的信息填充模板,请先考虑数据库!
标签: django performance django-templates