缓存Jinja2片段
用法:
1. {% cache [timeout [,[key1, [key2, ...]]]] %}
2. ...
3. {% endcache %}
默认情况下“模版文件路径”+“片段开始的函数”用来作为缓存键。同样键名是可以手动设置的。键名串联成一个字符串,这样能够用于避免同样的块在不同模版被重复计算。
设置 timeout 为 None,并且使用了自定义的键:
1. {% cache None "key" %}...
为了删除缓存值,为“del”设置超时时间:
1. {% cache 'del' %}...
如果提供键名,你可以很容易地产生模版的片段密钥,从模板上下文外删除它:
1. from flask.ext.cache import make_template_fragment_key
2. key = make_template_fragment_key("key1", vary_on=["key2", "key3"])
3. cache.delete(key)
例子:
1. Considering we have render_form_field and render_submit macroses.
2. {% cache 60*5 %}
4. <form>
5. {% render_form_field form.username %}
6. {% render_submit %}
7. </form>
9. {% endcache %}
