代码之家  ›  专栏  ›  技术社区  ›  muhuk

如何测试django缓存?

  •  17
  • muhuk  · 技术社区  · 16 年前

    有办法吗 当然

    不应该 涉及缓存中间件,因为不是每个项目都使用它们。尽管解决方案本身可能 中间件。

    4 回复  |  直到 16 年前
        1
  •  20
  •   Peter Rowell    16 年前

    我们进行了大量的组件缓存,但并不是所有组件都同时更新。因此,我们在一个普遍包含的上下文处理器中设置主机和时间戳值。在我们插入的每个模板片段的顶部:

    <!-- component_name {{host}} {{timestamp}} -->
    

    组件名称只是使查看源代码和搜索该字符串变得容易。

    我们的所有视图都是对象详细信息页面,它们定义了一个上下文变量“page_object”,并且在base.html模板母版的顶部有这样一个变量:

    <!-- {{page_object.class_id}} @ {{timestamp}} -->
    

    class_id()是我们所有主要内容类使用的一个超类的方法。只是:

    def class_id(self):
        "%s.%s.%s" % (self.__class__._meta.app_label,
                        self.__class__.__name__, self.id)
    

    如果加载一个页面,并且任何时间戳都超过几秒钟,那么很有可能该组件已被缓存。

        2
  •  16
  •   Johannes    13 年前

    Peter Rowells的建议很有效,但您不需要自定义模板上下文处理器 时间戳。您只需使用模板标记即可:

     <!-- {% now "jS F Y H:i" %} --> 
    
        3
  •  8
  •   ironfroggy    16 年前

        4
  •  2
  •   Ned Batchelder    16 年前