如何正确设置django-cache-machine?

1 投票
2 回答
4213 浏览
提问于 2025-04-18 16:34

我刚接触Django和缓存,正在使用Django 1.6。

我按照django-cache-machine页面上的说明进行了安装。

1. 使用命令:pip install django-cache-machine

2. 在settings.py文件中添加以下内容:

CACHES = {
    'default': {
        'BACKEND': 'caching.backends.memcached.MemcachedCache',
        'LOCATION': 'localhost:11211',
        'PREFIX': 'wee:',
    },
}

3. 根据说明对我的一个模型应用了这些更改,算是最简单的例子。

当我尝试启动服务器时,出现了以下错误。

django.core.cache.backends.base.InvalidCacheBackendError: 找不到后端 'caching.backends.memcached.MemcachedCache':'module' 对象没有属性 'CacheClass'

我之前安装过johnny-cache,但很快就把它卸载了,然后安装了cache machine。我不知道这是否有关系。Memcached也在运行。

提前谢谢你们!

编辑:

我刚发现这个问题在这个应用的GitHub页面上已经提到过。 https://github.com/jbalogh/django-cache-machine/issues/44

并且已经有修复方案了。所以我重新安装了GitHub上的版本。

pip install -e git://github.com/jbalogh/django-cache-machine.git#egg=django-cache-machine

现在又出现了另一个错误。

ImportError: No module named memcache

于是我安装了另一个叫做python-memcached的应用。服务器可以运行,但没有进行缓存。

我运行了Python shell,应用运行得很好。所以我觉得问题还是出在django-cache-machine上。

我猜django-cache-machine可能还不完全支持Django 1.6。

如果有人知道怎么在Django 1.6+Python 2.7上让它工作,请告诉我。

再次感谢!

2 个回答

0

用这个替换:

'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
1

只需要用下面的命令安装memcach:

  pip install python-memcached

这样就解决我的问题了!

撰写回答