我将如何加速 Django 模板渲染?在 View 函数完全计算出它需要的任何内容之后,我的模板大约需要 1-2 秒来渲染。
我已经尝试在 View 中执行所有数据库访问,这样模板只访问 RAM 而不是数据库引擎。
我确实有很多include
s-那里可能有问题吗?
最佳答案
我刚刚花了很多时间优化我的 django 模板代码。以下是对我有用的优化指南,但根据您的设置,您可能无法获得如此显着的加速。
unicode
,而不是 str
: Django 将所有变量强制转换为 unicode。这不需要太长时间,但如果 str
模板中的许多地方都使用了变量,它可能会变成明显的延迟。这很容易解决,每当您将文本数据发送到 Django 渲染器时,请确保它是 unicode。 safe
: Django 的自动安全措施非常好,但它们对性能的影响很小。如果您在模板中使用了许多变量,并且您知道它是安全的,那么请务必将其标记为这样。 render_template_from_string
, django 拉取模板,编译它,然后渲染它。 Django 可以轻松地缓存此过程的前两部分并将它们存储在内存中。您需要做的就是在您的 settings.py
中做一点小改动。要添加的文件cached.Loader
给您的TEMPLATE_LOADERS
.更多解释in the Django documentation . endless pagination
: 我发现endless pagination插件大大减慢了速度。那是因为它必须为每个页码加载一个新模板。我进入并破解它,直到我得到它做我想要的,但在你这样做之前,尝试删除它,看看你得到了什么样的性能改进。 执行上述操作将我在 GAE 实例上的复杂页面的渲染时间从大约 1.0S 减少到 250ms,但同样,您的里程可能会有所不同。
关于django:加速模板渲染性能的指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569387/