美文网首页
session修改二层数据, 没保存

session修改二层数据, 没保存

作者: 火鸡不肥 | 来源:发表于2019-03-08 12:09 被阅读0次

    flask中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}

    相关文章

      网友评论

          本文标题:session修改二层数据, 没保存

          本文链接:https://www.haomeiwen.com/subject/nwmhpqtx.html