我正在使用 web.py 在 python 中制作一个 webapp,我已经设置了表并且可以登录用户和所有内容,但是 session 的初始化程序似乎不起作用。
我的代码中有以下内容:
store = web.session.DBStore(db, 'sessions')
session = web.session.Session(app, store, initializer={'logged_in': 0, 'username': ''})
render = web.template.render('templates/', base='base', globals={'session': session, 'username': session.username})
但这会引发错误: AttributeError: 'ThreadedDict' 对象没有属性 'username'
可以做什么?我基本上只是按照这里的例子:
http://webpy.org/cookbook/sessions
请您参考如下方法:
我有同样的问题,所以我使用 _initializer 属性来获取 session 数据。
这是一个例子:
store = web.session.DBStore(db, 'sessions')
session = web.session.Session(app, store, initializer={'logged_in': 0, 'username': ''})
session_data = session._initializer
render = web.template.render('templates/', base='base', globals={'session': session_data, 'username': session_data['username']})
然后您可以从 session 访问您在初始化程序中声明的所有数据。如果有人有更好的方法,请告诉我。
PS:我知道晚了,但晚总比不晚好......
