Python 使用Django';s缓存当且仅当用户注销时?
我需要在Django 1.8站点上实现缓存(显然是为了加快渲染速度)。计划是使用Memcache,尽管这个问题与它没有直接联系 现在,大量流量流向一组特定的博客帖子,这些帖子保持不变。但是,整个站点都有一个通用的动态顶栏,每个登录用户的顶栏都会有所不同,因此我需要一个缓存功能,当且仅当用户是匿名用户时才会启动,例如,如果用户登录,则会完全绕过该功能 看起来Django的内置缓存并不能真正区分登录用户和注销用户,所以如果我使用它,将会对登录用户产生不利影响 我可能必须使用低级缓存API编写自己的缓存装饰器/缓存函数,并将其附加到站点上所有注销的可访问URL/视图。虽然这看起来并不困难,但这确实是一个非常常见的特性。Django中真的没有任何东西可以正确地实现这一点吗?我担心我可能错过了什么,正在重新安装车轮Python 使用Django';s缓存当且仅当用户注销时?,python,django,caching,memcached,Python,Django,Caching,Memcached,我需要在Django 1.8站点上实现缓存(显然是为了加快渲染速度)。计划是使用Memcache,尽管这个问题与它没有直接联系 现在,大量流量流向一组特定的博客帖子,这些帖子保持不变。但是,整个站点都有一个通用的动态顶栏,每个登录用户的顶栏都会有所不同,因此我需要一个缓存功能,当且仅当用户是匿名用户时才会启动,例如,如果用户登录,则会完全绕过该功能 看起来Django的内置缓存并不能真正区分登录用户和注销用户,所以如果我使用它,将会对登录用户产生不利影响 我可能必须使用低级缓存API编写自己的缓
谢谢大家! 首先,模板缓存被高估。首先使用django调试工具栏确定在django安装中模板呈现是否确实很慢。我打赌这不是瓶颈。如果你发现它很慢。您可以按每个用户进行缓存,如下所示:
{% cache 300 FULL_PAGE request.build_absolute_uri request.user %}
第一个参数是超时,第二个参数是其他人唯一标识片段的名称。感谢您的回答-我知道如何在每个用户的基础上使用它。在这种情况下,模板呈现不是瓶颈。瓶颈是模板由多个数据库调用填充(因为实际内容存储在elephantblog/feincms中)。因此,我需要在URL/控制器层进行缓存,甚至在它进行这些调用之前。这也可以用于非身份验证用户,因为这样用户对所有用户都是匿名的。是的,在memcache中缓存所有或部分查询可能会给您带来更好的速度提升