我一直关注this tutorial,以便我可以在Heroku上的应用程序上使用Memcache。但是我在Heroku的shell中使用public static void toggleComplete() {
System.out.print("Enter index of item to toggle complete: ");
int toggle = k.nextInt();
toDoItems.get(toggle).setToggle(!toDoItems.get(toggle).isToggled());
// No need for a for-loop since `ArrayList` has the `get` method to do this for you
//for (int index = 0; index < toDoItems.size(); index++) {
// if(toggle == index) {
// System.out.println(index + ". [X] " + toDoItems.get(index));
// }
// else {
// System.out.println(index + ". [ ] " + toDoItems.get(index));
// }
//}
}
时遇到了问题(我的工作正常):
cache.get()
我看到了this question,他和我有同样的问题。我的File "/app/.heroku/python/lib/python3.4/site-packages/django_pylibmc/memcached.py", line 92
except MemcachedError, e:
^
SyntaxError: invalid syntax
看起来像这样:
settings.py
因此我将def get_cache():
import os
try:
os.environ['MEMCACHE_SERVERS'] = os.environ['MEMCACHIER_SERVERS'].replace(',', ';')
os.environ['MEMCACHE_USERNAME'] = os.environ['MEMCACHIER_USERNAME']
os.environ['MEMCACHE_PASSWORD'] = os.environ['MEMCACHIER_PASSWORD']
return {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'TIMEOUT': 500,
'BINARY': True,
'OPTIONS': { 'tcp_nodelay': True }
}
}
except:
return {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
替换为django_pylibmc.memcached.PyLibMCCache
。然而,当我再次尝试django.core.cache.backends.memcached.PyLibMCCache
时出现了不同的错误:
cache.get("foo")
有人可以帮帮我吗?我需要在某处更改某些设置吗?
答案 0 :(得分:0)
我决定转而使用Django的数据库缓存。
答案 1 :(得分:0)
语法
except MemcachedError, e:
适用于Python 2,但不适用于Python 3.
将其更改为except MemcachedError as e:
,您应该没问题。