你同样可以使用cache标签来缓存模板片段。 在模板的顶端附近加入{% load cache %}以通知模板存取缓存标签。
模板标签{% cache %}在给定的时间内缓存了块的内容。 它至少需要两个参数: 缓存超时时间(以秒计)和指定缓存片段的名称。 示例:
1
2
3
4
|
{ % load cache % }
{ % cache 500 sidebar % }
.. sidebar ..
{ % endcache % }
|
有时你可能想缓存基于片段的动态内容的多份拷贝。 比如,你想为上一个例子的每个用户分别缓存侧边栏。 这样只需要给{% cache %}传递额外的参数以标识缓存片段。
1
2
3
4
|
{ % load cache % }
{ % cache 500 sidebar request.user.username % }
.. sidebar for logged in user ..
{ % endcache % }
|
传递不止一个参数也是可行的。 简单地把参数传给{% cache %}。
缓存超时时间可以作为模板变量,只要它可以解析为整数值。 例如,如果模板变量my_timeout值为600,那么以下两个例子是等价的。
1
2
|
{ % cache 600 sidebar % } ... { % endcache % }
{ % cache my_timeout sidebar % } ... { % endcache % }
|
这个特性在避免模板重复方面非常有用。 可以把超时时间保存在变量里,然后在别的地方复用。