今天在把Azure Redis Cache集成到Django项目的时候发现一个奇怪的报错,
检查一下我的settings.py是这么写的:
1 2 3 4 5 6 7 8 9
| CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "rediss://:iAITMl7lD127c/VZEl0OZl8qviaXHIoKekaJjP1J1HI=@#马赛克#:6380/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } }
|
然后发现报错信息中的iAITMl7lD127c
正好就是/
前面的内容,料想应该是解析URL的时候错把这个/
当做分隔符了。一路TraceBack发现正是Python的标准库urlparse中抛出的错误,然后义正言辞地去找redis-py,结果发现人家已经修复了,但是django-redis应该不会对此进行修改,因为作者是知道这个BUG的但是也没改,而是给了之前的OPTIONS的解决方案。我目前的解决方案是,刷一个不带/
的密码或者这样用:
1 2 3 4 5 6 7 8 9 10
| CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "rediss://#马赛克#:6380/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "iAITMl7lD127c/VZEl0OZl8qviaXHIoKekaJjP1J1HI=", } } }
|
参考阅读:
https://github.com/niwinz/django-redis/issues/114
https://github.com/andymccurdy/redis-py/issues/579