Я использовал 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.
Кто-нибудь использует гесессон и знает, что происходит?