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)
删除sessiondel request.session['some_id']
注意事项
当Django自带的数据库(db文件)为空的时候,会报错,no such table ...
这时运行以下命令,db文件就会根据配置,建立一些表了。
尤其要注意:
key取出来是str类型的!要考虑是否需要转成它原来的类型!
说明
session存放于服务器端,不同的客户端会留下不同的session。
就算它们在request.session中的key是一样的,但也会有不同的session。
似乎是服务器端为每个客户端分配了一个sessionId。