Python - Mako模板 - 如何使缓存无效?

时间:2013-07-03 06:57:01

标签: python caching mako beaker

我的一个页面有一个使用此键生成的块:

<%block cached="True" cache_key="${(month, year, timezone, admin)}">

要使特定月份/年无效,我会遍历所有时区/管理员(约50),并致电:

template.cache.invalidate((month, year, timezone, admin))

偶尔我想让整个块无效。我不想循环遍历月/年/时区/管理员的所有值,因为这将需要永远。

有没有简单的方法来实现这个目标?

我愿意为此模板的整个缓存无效。

我正在使用Beaker后端。我希望Mako有一些方法来完成这些基本任务,但如果有必要,我愿意直接使用Beaker。

1 个答案:

答案 0 :(得分:0)

目前,我正在使用此Beaker特定代码清除特定模板的整个缓存:

kw = template.cache._get_cache_kw({}, None)
cache = self.cache_manager.get_cache(template.cache.impl.cache.id, **kw)
cache.clear()

我无法相信Mako对此操作没有基本的支持......我忽略了什么吗?