Django Session存对象时
1 当存储普通对象时(Plain Object),提示错误
在StackOverflow上找到出错的原因,原文和翻译如下
原文:
翻译:
django中的会话不存储在服务器内存中,因此它们不能包含纯对象。 它们被序列化为可以存储在一些存储后端(数据库,缓存,用户cookie等)中的字符串。
默认情况下,django为会话使用JSON序列化。 JSON序列化程序不能序列化对象。
django中还有另一个序列化程序:pickle。 它可以序列化几乎任何你可以在python中创建,但它有一些缺点。 它更慢,当与任何不受信任的会话存储(如cookie)一起使用时,它可能变得非常严重的安全漏洞,因为它将允许攻击者运行任何代码,只是通过交换序列化的数据。 有关详细信息,请参阅Django docs。
此外,反序列化的pickle将只是尝试重新创建对象状态从它被序列化。 这个对象不会被保存在内存中,所以考虑如果反序列化它从pickle比从头重新创建它更好(像你以前)。
2 存储数字,字符串,列表等可以序列化的基本类型时不报错
在Django官方文档中给出了解释