【问题标题】:Django Templates -- nesting includes in loopsDjango 模板——嵌套包含在循环中
【发布时间】:2012-06-11 01:43:57
【问题描述】:

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

例如: {% for user in users %} {% 包括“userDetail.html”%} {% endfor %}

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

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

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

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

【问题讨论】:

  • 在 Python 代码而不是模板中进行循环。应该会快一点。

标签: python django templates


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2020-08-03
      • 2020-09-15
      • 1970-01-01
      相关资源
      最近更新 更多