5

我有一个模板,其中包含很多嵌套在 for 循环中。我们将页面的不同部分拆分为单独的模板文件,因为我们通过以不同方式将它们拼凑在一起以用于不同的视图来重用它们。

例如: {% for user in users %} {% include "userDetail.html" %} {% endfor %}

我们的数据库中有大约 40k 条记录。我已经将问题定位到模板系统。render_to_response 运行大约需要 11 秒。我想也许 Django 没有缓存模板,所以可能是 I/O 问题。

我扁平化了我们的一个模板,因此根本没有包含,并缩短了大约 5 秒。但这在我们重用大量模板代码的情况下并不是很有帮助。

有人知道这个问题的解决方案吗?或者有没有人有任何其他想法为什么 render_to_response 会花这么长时间?

[编辑]我应该提到我启用了 Django 的缓存模板加载器,它只节省了大约 1 秒。展平模板明显更快。

4

2 回答 2

0

试试Jinja2,根据我的阅读,它比 Django 的模板库快 10 倍。

于 2012-06-07T01:22:22.623 回答
-3

你可以在客户端使用 Java Script 来做 for 循环,而不是让 django 来做。

http://blog.iiilx.com/programming/benchmarking-my-app-out-of-curiosity/

于 2012-06-07T02:34:30.890 回答