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 )