Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django每视图缓存不缓存_Django_Caching_Heroku_Memcached - Fatal编程技术网

Django每视图缓存不缓存

Django每视图缓存不缓存,django,caching,heroku,memcached,Django,Caching,Heroku,Memcached,我正在尝试设置逐视图缓存,并且已经阅读了几次文档,尽管它仍然不起作用 我确实看到使用了Memcache,但它似乎不是视图,因为我在那里的时间戳已经更新 MIDDLEWARE_CLASSES = ( 'django.middleware.gzip.GZipMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware

我正在尝试设置逐视图缓存,并且已经阅读了几次文档,尽管它仍然不起作用

我确实看到使用了Memcache,但它似乎不是视图,因为我在那里的时间戳已经更新

MIDDLEWARE_CLASSES = (
    'django.middleware.gzip.GZipMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'web.middleware.WebMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
    'django.middleware.http.ConditionalGetMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.middleware.cache.UpdateCacheMiddleware',
)


# Memcache

os.environ['MEMCACHE_SERVERS'] = os.environ.get('MEMCACHIER_SERVERS', '').replace(',', ';')
os.environ['MEMCACHE_USERNAME'] = os.environ.get('MEMCACHIER_USERNAME', '')
os.environ['MEMCACHE_PASSWORD'] = os.environ.get('MEMCACHIER_PASSWORD', '')

CACHES = {
  'default': {
    'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
    'TIMEOUT': 500,
    'BINARY': True,
    'OPTIONS': { 'tcp_nodelay': True }
  }
}

# URL conf

cache_ttl = 24 * 60 * 60

url(r'^categories/$', cache_page(cache_ttl)(main.categories)),

# View

@ensure_csrf_cookie
def categories(request):

我认为您的代码中有一些错误:)

  • UpdateCacheMedidleware必须是第一个中间件,FetchFromCacheMedidleware必须是最后一个()
  • 不知道“django_pylibmc”是否是缓存后端中的快捷方式,但在我的设置中是“django.core.cache.backends.memcached.pylibmcache”

  • 这可能会有所帮助。

    即使perview缓存也需要中间件吗?