原因:session中不能储存对象,所以要将对象序列化
坑:json包 可以读取文件,但不支持对象
然后找到了jsonpickle包
1 import jsonpickle 2 #josn包 得往文件里写还不支持bytes 3 4 class User(object): 5 def __init__(self,u,p): 6 self.uName = u 7 self.uPwd= p 8 9 def __str__(self): 10 return "%s--%s"%(self.uName,self.uPwd) 11 #get方法 12 def __getstate__(self): 13 data = self.__dict__.copy() 14 del data['uPwd'] 15 return data 16 17 u = User('zhangsan','123') 18 #序列化 19 jsonpickle.dumps(u)
# {"py/object": "__main__.User", "py/state": {"uName": "zhangsan"}} 20 jsonpickle.dumps(u,unpicklable=False) #打印的时候不显示包名,打包信息
# {"uName": "zhangsan"}
21 22 23 24 jsonpickle.loads(request.session['u']) #反序列化