如何测试Django缓存?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

有没有办法当然页面来自生产服务器上的缓存,也来自开发服务器?

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

仅仅检查数据是否陈旧并不是一个非常安全的测试方法。

提问于
用户回答回答于

我们做了很多组件缓存,但并不是所有的组件都同时更新。因此,我们在一个通用的上下文处理器中设置主机和时间戳值。在每个模板片段的顶部,我们都会插入:

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

组件_名称只会使您很容易地执行“查看源”并搜索该字符串。

所有属于对象详细页的视图都定义了上下文变量“页面”。_对象“,并且在base.html模板主模板的顶部有这样的内容:

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

类_ID()是来自所有主要内容类使用的超类的方法。它只是:

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

如果加载一个页面,并且任何时间戳都超过几秒钟,那么很好地肯定组件是缓存的。

用户回答回答于

PeterRowells的建议工作得很好,但是不需要为时间戳定制模板上下文处理器。可以简单地使用模板标记:

 <!-- {% now "jS F Y H:i" %} --> 

扫码关注云+社区