Python GAE Webapp2-销毁会话不';行不通
还是我误解了工作的方式?下面是一个示例代码:Python GAE Webapp2-销毁会话不';行不通,python,google-app-engine,session,webapp2,Python,Google App Engine,Session,Webapp2,还是我误解了工作的方式?下面是一个示例代码: class TestHandler(BaseHandler): def get(self): counter = self.session.get('counter') if not counter: counter = 0 counter += 1 if counter > 5: self.auth.unset_sessi
class TestHandler(BaseHandler):
def get(self):
counter = self.session.get('counter')
if not counter:
counter = 0
counter += 1
if counter > 5:
self.auth.unset_session()
else:
self.session['counter'] = counter
return self.response.write ( counter )
会话工作,计数器计数,但会话未被销毁或销毁都不会使值为空
销毁null是否只是一些值,如userid和sessionid,或者我是否完全没有抓住要点?谢谢。取消设置会话将从会话中删除用户,而不是其他会话变量。unset_会话方法位于auth模块上
如果你在代码中再深入一点,你可以看看代码在做什么。
如果试图取消设置计数器,可以通过调用self.session.pop('counter')来弹出会话变量
例如:
counter = self.session.get('counter')
if not counter:
counter = 0
counter += 1
if counter > 5:
self.session.pop('counter')
else:
self.session['counter'] = counter
return self.response.write ( counter )
如果您想清除会话中的所有内容,可以调用self.session.clear(),这样就不是bug了,这真是个好消息!谢谢你的建议。嗨@MarkusvonBroady,它会抛出异常还是只是不清除变量?您使用的是什么会话后端?抱歉,再次编写了一个测试,这次成功了。在这两种情况下都是memcache后端,所以情况并非如此,再次感谢!
counter = self.session.get('counter')
if not counter:
counter = 0
counter += 1
if counter > 5:
self.session.pop('counter')
else:
self.session['counter'] = counter
return self.response.write ( counter )