在 Django 中使用缓存

Using cache in django

我想在我的 Django 应用程序中使用 Memcache。 Ι 希望能够为每个视图使用缓存。但我还没有理解缓存中的一些东西。假设我有以下观点

def view(request, customer_id):
    #some view functionality here

    return queryset #which my different according to some posting data

假设我缓存这个视图

@cache_page(60*15)
def view(request, customer_id):
    #some view functionality here

    return queryset

根据 this 如果用户访问与 "view" 关联的我的页面,它将被缓存然后从缓存中检索。什么会被缓存?查询集?还是模板?但是根据某些 post 数据(例如搜索视图)可能会有所不同的查询集呢?您能否更详细地解释一下如何为查询集使用缓存?我应该缓存变化很大的查询集吗?还是不行?

  1. 整个页面将被缓存。
  2. 缓存使用整个 url 作为键。所以 url?q=aaa' and 'url?q=bbb 将被缓存为不同的页面。
  3. 仅缓存 GET 和 HEAD 请求。因此,您的 POST 请求将照常工作。

至于查询集的缓存...Read this answer