Django session存储到redis数据库
把session存储到redis数据库,需要在setting中配置
django-redis 中文文档
http://django-redis-chs.readthedocs.io/zh_CN/latest/#cache-backend
在使用django1.6+的时候,默认会吧session存放在数据库django_session表里。
如果要把session放在内存中,就应该在settings.py 中配置
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
使用的时候:
新增:request.session["userName"] = "Tom" 查询:name = request.session["userName"] 删除:del request.session["userName"]
好,那更复杂一点的数据该如何存储呢:比如一个对象Student。
按照其他语言的习惯,比如java和C#,按理说应该是:
stu = Student(name="Tom",age = 12) 新增:request.session["user"] = stu 查询:stu = request.session["user"] 删除:del request.session["user"]
存放对象的时候,如果session是存放在内存中,那么是没有问题的。但是一旦存放在数据库中就不行了。
为何?
因为存放在数据库中的东西,是需要能够进行json序列化的。
Student是不能被序列化json的。需要把Student转换为字典,没错,是字典。
{“name”:“Tom”,“age”:12}
这样才能存放在数据库session中。
原文地址: https://blog.csdn.net/shilei123456789666/article/details/79116271