我正在使用使用缓存来访问我的网站。这会产生以下错误:
"Control/space characters not allowed (key="\xebw\x1b}\xae\xa3\xb8\x18\xc4\xb5\xce\x0c%\x13'\xed")".
我使用的代码如下:
def hash_key(key, key_prefix, version):
new_key = '%s :%s :%s' % (key_prefix, version, key)
if len(new_key) > 250:
m = hashlib.md5()
m.update(new_key)
new_key = m.digest()
return new_key
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1.11211',
'KEY_FUNCTION': hash_key,
}
}
答案 0 :(得分:0)
尝试使用m.hexdigest()
代替m.digest()
。错误消息中的数据是16字节,即二进制散列数据的长度。您似乎需要32个字符的ASCII表示,这是hexdigest
提供的。