get_current_session返回None

时间:2010-09-09 14:37:00

标签: python google-app-engine session

我一直在使用geasessions一段时间,一直很努力。它简单而快速。

但今天我开始了一个新项目(GAE v1.3.7)并且无法使其工作,get_current_session()只返回None

我已将代码拆分为仅使用gaesessions的新项目:

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template
from gaesessions import get_current_session
import logging

class MainHandler(webapp.RequestHandler):
    def get(self):
        session = get_current_session()
        logging.info(session)
        path = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(path, { }))

在日志中它只是说None

奇怪的是,其他解决方案仍然有效。 (我猜这是因为Session的db.Model已经存在)。测试了我在那里使用的版本并下载了最新版本(1.04)

我已经查看了source code的gaesessions,有意义的是它返回None:

_current_session = None
def get_current_session():
    """Returns the session associated with the current request."""
    return _current_session

我找不到调用Session类的任何地方,但是那时它可能是我的laking python技能。

有没有人使用过去,知道发生了什么?

1 个答案:

答案 0 :(得分:2)

我认为你错过了installation process中的某些内容。

无论如何,如果你向下滚动源代码,你会注意到这部分代码实际上对_current_session变量进行了定价。

def __call__(self, environ, start_response):
        # initialize a session for the current user
        global _current_session
        _current_session = Session(lifetime=self.lifetime, no_datastore=self.no_datastore, cookie_only_threshold=self.cookie_only_thresh, cookie_key=self.cookie_key)