Python Django缓存页面检查

Python Django缓存页面检查,python,django,caching,Python,Django,Caching,当我像这样使用cache_页面装饰器时,如何确认我的Django视图正在被缓存: @cache_page(60) def my_view(request): 理想情况下,我希望在控制台中输出缓存命中/未命中消息,以便确认我的视图被缓存了60秒等 非常感谢,, g根据您正在使用的缓存中间件,您可以检查该类的process\u request方法,并找到类似的行(取自django/middleware/cache.py) 并从那里记录消息。我承认,这不是一个干净的方法。你可以抓取一个django调

当我像这样使用cache_页面装饰器时,如何确认我的Django视图正在被缓存:

@cache_page(60)
def my_view(request):
理想情况下,我希望在控制台中输出缓存命中/未命中消息,以便确认我的视图被缓存了60秒等

非常感谢,,
g

根据您正在使用的缓存中间件,您可以检查该类的
process\u request
方法,并找到类似的行(取自
django/middleware/cache.py

并从那里记录消息。我承认,这不是一个干净的方法。

你可以抓取一个
django调试工具栏
()的副本并观察查询:如果页面没有从缓存中提取,
django调试工具栏
应该显示组装页面所需的所有查询。如果从缓存中提取页面,则不会看到查询

您还可以将日志记录添加到正在使用的特定缓存包装器中,然后在
django debug toolbar
的“日志记录”面板中引用输出。下面是一个这样的例子:


如果您有兴趣详细监控memcache的使用情况,我还建议您获取
django memcache status
()和
memcache top
()的副本。

您可以通过查看HTTP响应中的标题来确认页面已被缓存

$ curl -v http://localhost:8000/cached_view/ >/dev/null
[...]
< Cache-Control: max-age=900
< Expires: Tue, 02 Jul 2019 18:36:34 GMT
[...]
$curl-vhttp://localhost:8000/cached_view/ >/dev/null
[...]
<缓存控制:最大年龄=900

缓存控制
过期
都意味着在生成响应时涉及到缓存。

aha!这正是我想要的。谢谢。要点记下来了,这就是为什么要在这里粘贴代码。
$ curl -v http://localhost:8000/cached_view/ >/dev/null
[...]
< Cache-Control: max-age=900
< Expires: Tue, 02 Jul 2019 18:36:34 GMT
[...]