get_current_session возвращает None - PullRequest
       4

get_current_session возвращает None

1 голос
/ 09 сентября 2010

Я использовал 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.

Странная часть в том, что другие решения все еще работают. (Я предполагаю, что это связано с тем, что db.Model для Session уже присутствует). Протестировал версию, которую я там использую, и скачал последнюю версию (1.04)

Я посмотрел исходный код для gaesessions, и это имеет смысл, что он возвращает None:

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

И я нигде не могу найти, где вызывается класс Session, но, опять же, это могут быть мои слабые навыки Python.

Кто-нибудь использует гесессон и знает, что происходит?

1 Ответ

2 голосов
/ 09 сентября 2010

Я думаю, что вы что-то упустили в процессе установки .

В любом случае, если вы прокрутите исходный код, вы заметите и ту часть кода, которая действительно оценивает _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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...