从磁盘中获取模板比从memcached中取出模板慢得多,因此每次从磁盘加载它们都是浪费。
Django是否在内存或CACHE_BACKEND
中缓存未渲染的模板,还是我必须自己实现?
答案 0 :(得分:3)
Django也带有cached template loader。
答案 1 :(得分:0)
我似乎无法找到文件系统加载器可能缓存模板的任何位置。确实看起来每次都会加载它们。
但这可能不是一个真正的问题。首先,文件系统加载器完全它所说的内容,它每次使用时都从磁盘读取模板。一旦进行了更改,它将始终获取对磁盘模板的更改。
如果您不想要这种行为,则可能需要使用不同的加载程序。事实上,这很容易做到;只是来自django.template.loader.filesystem.Loader
的子类,重载load_template
,并享受。
答案 2 :(得分:0)
您必须自己启用缓存。默认情况下,每次渲染模板时,都会从磁盘读取,解析和渲染。
有许多方法可以在Django中实现缓存。所有这些都在Django's cache framework help page中描述。
根据您要实现的目标,您可以缓存整个请求或仅缓存模板块。阅读上面的页面了解详情。
答案 3 :(得分:0)
我怀疑如果每次都读取模板,它可能会在大多数时间内保留在内核的buffer cache中。只要你没有证明,你就不应该在这种优化上投入任何时间,这实际上是一种消耗性能的东西。