2010-09-09 4 views
1

J'ai utilisé geasessions pendant un moment, fonctionnait très bien. C'est simple et rapide.get_current_session renvoie Aucun

Mais aujourd'hui, j'ai commencé un nouveau projet (GAE v1.3.7) et ne peut pas le faire fonctionner, get_current_session() juste retourne None

J'ai divisé le code pour un nouveau projet qui vient à l'aide 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, { })) 

Et dans le journal, il est juste None.

La partie étrange est que les autres solutions fonctionnent encore. (Je suppose que c'est dû au fait que le db.Model for Session est déjà présent). Testé à la fois la version que je l'utilise là-bas et téléchargé la dernière version (1,04)

J'ai regardé les source code pour gaesessions et faire un peu de sens qu'il retourne None:

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

Et je ne peux pas trouver n'importe où où la classe Session est invoquée, mais là encore, il pourrait s'agir de mes compétences python laking.

Est-ce que quelqu'un utilise gesession et sait ce qui se passe?

Répondre

2

Je pense que vous avez manqué quelque chose dans le installation process. Quoi qu'il en soit, si vous faites défiler le code source, vous remarquerez également cette partie du code qui valorise réellement la variable _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) 
+0

Vous avez absolument oublié d'ajouter SessionMiddleware dans appengine_config! – fredrik

Questions connexes