我使用gae-sessions建立了一个简单的登录系统,我想向登录用户显示登录用户数量以及他们是谁。
要计算登录的人数,当我在用户登录时,会立即使用save将会话保存到数据存储区(persist_even_if_using_cookie = True)。然后我使用SessionModel.all()。count()来检索登录帐户的数量。
我在检索其他会话的信息方面遇到了麻烦。我不知道怎么做。我试过这个:
logged_in = []
for activesession in SessionModel.all():
logged_in.append(activesession['user'])
但是我收到了这个错误:
TypeError: 'SessionModel' object is unsubscriptable
我也尝试过activesession.get('user'),但它会导致另一个错误:
BadKeyError: Invalid string key user.
我该怎么做?
答案 0 :(得分:2)
Session对象和SessionModel彼此分开。 SessionModel只存储会话的内容,不能像Session对象那样读取。
我觉得这是一个坏主意,你应该找到另一种方法来存储/检索登录用户列表。此方法可能会返回尚未删除的过期会话,并且可能会非常慢。
您要调用的方法是__decode_data。我觉得这样的事情会奏效:
for activesession in SessionModel.all():
data = Session._Session__decode_data(activesession.pdump)
logged_in.append(data['user'])