Skip to main content
 首页 » 编程设计

python之Webpy session : AttributeError: 'ThreadedDict' object has no attribute 'username'

2025年05月04日29dflying

我正在使用 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:我知道晚了,但晚总比不晚好......