【问题标题】:Deliver cached page to anonymous user and non-cache to authorized将缓存页面交付给匿名用户,将非缓存页面交付给授权用户
【发布时间】:2012-09-08 07:06:27
【问题描述】:

我在我的应用程序中使用 django 1.3。我需要组织缓存,满足以下规则:

  1. 使用 memcached 作为缓存后端
  2. 在我想要缓存的视图中使用@cache_page 装饰器
  3. 每个未经授权(匿名)的用户都会看到页面的缓存版本 (所以 django 应该提供页面的缓存版本);
  4. django 应该为每个授权用户生成新版本的页面 (非缓存)并交付它。

我该怎么做?我尝试在视图下方使用两个装饰器:

@cache_page(108000)
@vary_on_cookie

但是当我登录时,我首先看到的是新数据,当更新数据后(使用 phpMyAdmin 直接在数据库中)我刷新页面并查看以前的内容版本。

【问题讨论】:

    标签: django caching memcached django-1.3


    【解决方案1】:

    【讨论】:

    • 此方法有一个“-”:如果我使用此选项 = True,则匿名用户的页面会被缓存,而授权用户的页面不会被缓存。但是为匿名生成的缓存显示为授权(因此,它不是为授权生成的,而是显示的)。我希望授权用户始终收到实际(未缓存的)数据。
    • 你确定吗?您必须记住它是按站点缓存,由中间件完成,您必须删除按视图缓存装饰器才能使用它。
    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多