django cache.set() 类型错误

标签 django python-memcached

我正在使用 django 1.9 和 Python 3。我已经安装了 python-memcached 并且当我尝试 cache.set("foo", "bar") 我得到这个错误:

TypeError: a bytes-like object is required, not 'str'

知道为什么会这样吗?我确保设置中间件并将缓存添加到 settings.py

最佳答案

错误来自 Python 3 中的字符串/unicode 更改。在 Python 2 中,字符串类型是字节,但在 Python 3 中,字符串类型与字节类型是分开的 - 这导致了您看到的错误。

如果您使用带有 memcached 的 Python 3.x,请使用 python3-memcached 包。它是 python-memcached 的替代品。

pip install python3-memcached

关于django cache.set() 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374345/

相关文章:

python - 如何通过传入选项列表来过滤 Django 查询集?

python 3 : Looking for alternatives to gevent and pylibmc/python-memcached

django - 如何在 Django 中删除缓存的模板片段?

python - 如何在 Jinja 2 中使用条件 if 语句?

python - Django - 使用 REMOTE_USER 进行身份验证 - 如何在开发服务器中进行测试?

python - 如何将条形图添加到基于 Django 的数据库?

python - FK select 的显示选项 - Django Rest Framework

python - 查询python memcached数据

python - Django - 当 memcached 关闭时发出警报

django - Memcached 比较并设置模式产生错误结果