Google App Engine - prise en Séances de travail avec Python 2.7

Tout d'abord, je suis tout nouveau en FGA, de sorte que son possible je fais de cette façon le mal - mais j'ai utilisé PHP avant et de la session était de savoir comment j'ai gardé de données persistantes. J'utilise Python 2.7 parce que c'est ce que j'utilise pour tous mes autres Python développement - bien que je commence à me demander si un déclassement à 2,5 pourrait être une solution valable, si ce n'est un idéal.

Le scénario, c'est que je suis en train de construire une preuve de concept site, et j'ai besoin d'avoir un "crétin" bouton de connexion qui définit simplement une variable de session appelé 'utilisateur' avec une valeur de 'admin'. Je veux vérifier dans le modèle navigation pour voir si la variable est définie et si je vais donc ajouter quelques extra commandes de menu. Très simple. (Note: je SAIS que ce n'est pas sécurisée, sensible ou tout ce qui doit être fait - le problème, c'est que la session n'est pas de travail, pas ce que je fais avec elle - je suis en train de faire un couple d'autres choses dans le code à l'aide de session - aucun d'entre eux sont de travail lorsqu'il est déployé)

Il semble qu'il y a un peu différent de la session de bibliothèques pour GAE avec Python et j'ai essayé celui qui a été le plus largement recommandé dans les recherches Google - gaeutilities, mais cela a causé des erreurs et de ne pas travailler (je suis finalement tombé sur ce post pour expliquer que son tout simplement pas compatible avec Python 2.7). Un peu plus de recherche m'a conduit à cette de la bibliothèque de appenginelearn.com qui j'ai laissé tomber et il a parfaitement fonctionné... jusqu'à ce que je déployé - alors il n'a tout simplement rien. J'aimerais quelques conseils ou des conseils à quoi cela peut-il être un échec. Voici le code que j'utilise:

J'ai mis l'util répertoire de la bibliothèque de appenginelearn.com dans la racine du répertoire de l'application, puis importés Session:

from util.sessions import Session

Puis j'ai ajouté la Connexion et la Déconnexion des classes:

class LogIn(webapp2.RequestHandler):
    def get(self):
        self.session = Session()
        self.session['user'] = 'admin'
        # Return the user to the page they logged in from
        referer = self.request.environ['HTTP_REFERER'] \
                if 'HTTP_REFERER' in self.request.environ \
                else '/'
        self.redirect(referer)

class LogOut(webapp2.RequestHandler):
    def get(self):
        self.session = Session()
        self.session.delete_item('user')
        self.redirect('/')

Et le suivant (horrible) de code dans la classe principale (ce qui va être fait pour toutes les pages dans la démo)

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.session = Session()
        logging.info('Main page fired up')
        if 'user' in self.session:
            user = self.session['user']
        else:
            user = None

        template_values = {
            'user': user
            }
        template = jinja_environment.get_template('main.html')
        self.response.out.write(template.render(template_values))

Et puis ceci dans le fichier modèle HTML

  {% if user %}
      <p>Welcome, {{user}}</p>
  {% endif %}

Et les erreurs dans le journal:

2012-10-04 02:51:28.084 /login 302 143ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
*ip address removed* - - [04/Oct/2012:02:51:28 -0700] "GET /login HTTP/1.1" 302 136 "*site-removed*" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4" "*site-removed*" ms=144 cpu_ms=0 cpm_usd=0.000015 instance=*instance removed*
**I** 2012-10-04 02:51:28.080
Creating session session-*session number removed*
**E** 2012-10-04 02:51:28.084
Set-Cookie: appengine-simple-session-sid=*session number removed*; Path=/
InformationsquelleAutor Steve | 2012-10-04