相关疑难解决方法(0)

在Django中过期视图缓存?

该@cache_page decorator真棒.但对于我的博客,我想在缓存中保留一个页面,直到有人对帖子发表评论.这听起来像个好主意,因为人们很少发表评论,因此将页面保留在memcached中,而没有人评论会很好.我以为某人之前一定有过这个问题?这与每个网址的缓存不同.

所以我想到的解决方案是:

@cache_page( 60 * 15, "blog" );
def blog( request ) ...
Run Code Online (Sandbox Code Playgroud)

然后我会保留用于博客视图的所有缓存密钥的列表,然后让"博客"缓存空间到期.但是我对Django没有超级经验,所以我想知道是否有人知道更好的方法吗?

python django caching

44
推荐指数
7
解决办法
2万
查看次数

Django Cache cache.set不存储数据

当我跑python manage.py shell,然后:

from django.core.cache import cache
cache.set("stack","overflow",3000)
print cache.get("stack")

(output: ) None
Run Code Online (Sandbox Code Playgroud)

我尝试重启memcache,这就是我的设置:

CACHES = { 
  'default' : { 
     'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
     'LOCATION' : '127.0.0.1:11211',
  }
}
Run Code Online (Sandbox Code Playgroud)

django memcached caching

17
推荐指数
1
解决办法
7079
查看次数

如何手动清除/更新 django 中的缓存视图

我的目标是缓存视图,直到发生视图缓存需要过期的事件为止,否则缓存 1 小时。这就是我在 urls.py 中的内容

url(r'^get_some_stuff/$', cache_page(60 * 60, key_prefix='get_some_stuff')(views.StuffView.as_view())),
Run Code Online (Sandbox Code Playgroud)

这很好用。现在我尝试获取缓存的视图以验证其中是否有内容,我尝试了以下操作:

from django.core.cache import cache
cache.get('get_some_stuff')
Run Code Online (Sandbox Code Playgroud)

但这返回 None。我希望做这样的事情:

from django.core.cache import cache
#relevant event happened
cache.delete('get_some_stuff')
Run Code Online (Sandbox Code Playgroud)

处理缓存的正确方法是什么?

我尝试过传递 uri 路径:

cache.get('/api/get_some_stuff/')
Run Code Online (Sandbox Code Playgroud)

我仍然没有得到回报。

>>> cache.has_key('/api/get_some_stuff/')
False
>>> cache.has_key('/api/get_some_stuff')
False
>>> cache.has_key('get_some_stuff')
False
Run Code Online (Sandbox Code Playgroud)

我已经查看了建议的答案,它根本没有解决根本问题。它看起来并不像传递 uri 路由路径作为密钥那么简单,因为密钥在 django 中有些抽象。

django caching

5
推荐指数
1
解决办法
4776
查看次数

标签 统计

caching ×3

django ×3

memcached ×1

python ×1