Flask的会话对象是字典还是对象?

Jos*_*osh 1 python flask

我注意到我可以将session对象视为object(session.myVal = 'foo')以及dict(session['myVal'] = 'foo').您无法使用带有对象语法的dict语法访问值集,反之亦然.使用会话对象的正确方法是什么?

dav*_*ism 7

在会话上设置值的唯一有效方法是将会话视为字典(session[key] = value).dict项目将在请求之间保留.有关更多信息,请参阅文档.

会话是一个普通的Python类实例,因此在它上面设置属性是完全有效的,但这些不会影响实际的会话数据,它们只会在请求结束时消失.

您可以自己验证:在session(session.xyz = '123')上设置一个属性,然后尝试在后续请求(print(session.xyz))上打印出来,你会得到一个AttributeError.