session修改二层数据|session修改二层数据,-没保存

flask中session修改二层数据

【session修改二层数据|session修改二层数据,-没保存】定义了一个session
session['user']={'name':lqz,'age':18}
直接修改了session里面的name
session['user']['name]='egon'
发现修改后没有保存
原因
查看源码发现session对象(继承了dict)有个modified属性, 默认为False
当直接给session赋值时会触发重写的setitem方法, 将modified属性值改为True
通过判断modified值, 为True才会保存
直接修改session的二层数据, 触发的是原始字典的setitem方法, modified值仍为False
解决
方式一: 手动修改modified
session.modified=True
方式二: 将整个session重新赋值
session['user']={'name':egon,'age':18}

    推荐阅读