Django:Session

默认情况下,Django的Session保存在其自带的sqlite数据库中。

在settings.py中,INSTALLED_APPS配置django.contrib.sessions。

超时

request.session.set_expiry(60 * 30)  #  30分钟过期(发呆时间)

设置session

request.session['key'] = value  # session的key是str类型

value 需要序列化(暂时还不知序列化是什么意思

int、float、str这种类型可以直接存。

dict这类,可以考虑用 json.dumps(dict) 转成str存储。

pandas.dataframe,可以考虑 df.to_json转为str存储。

获取session

s = session.get('key', '{}')

d = json.loads(s)

删除session  

del request.session['some_id']  



注意事项

当Django自带的数据库(db文件)为空的时候,会报错,no such table ...

这时运行以下命令,db文件就会根据配置,建立一些表了。

尤其要注意

key取出来是str类型的!要考虑是否需要转成它原来的类型!


说明

session存放于服务器端,不同的客户端会留下不同的session。

就算它们在request.session中的key是一样的,但也会有不同的session。

似乎是服务器端为每个客户端分配了一个sessionId。

猜你喜欢

转载自blog.csdn.net/qcyfred/article/details/79815190