Как использовать beaker с GAE

#python #google-app-engine #session #beaker

#python #google-app-engine #сессия #мензурка

Вопрос:

Привет, я собираюсь использовать собственный объект session и пытаюсь применить beaker с помощью python. Можете ли вы рассказать мне, как использовать его с Google app engine? У меня есть следующий код, а затем я не уверен, как действовать дальше:

     session_opts = {
        'session.cookie_expires': True,
        'session.type': 'ext:google',
        'session.key': 'mykey.beaker.session.id',
    }

    def main():
        logging.getLogger().setLevel(logging.DEBUG)

        application = webapp.WSGIApplication([(...
... handlers          ],debug=True)
        application = SessionMiddleware(application, session_opts)

        util.run_wsgi_app(application)
  

Ответ №1:

Как говорится в документации:

Как только программное обеспечение SessionMiddleware будет установлено, объект session будет доступен как beaker.session в среде WSGI.

В Google App Engine вы можете получить доступ к объекту, определяющему сеанс beaker, из веб-обработчика с помощью:

 session = self.request.environ['beaker.session']
  

сеанс представляет собой словарь Python, в который вы можете в основном помещать данные с:

 session['somekey'] = 'foo'
  

или получить данные с помощью:

 my_var = session['somekey']
  

Простой встречный пример был бы примерно таким:

 class MainPage(webapp.RequestHandler):
  def get(self):
    session = self.request.environ['beaker.session']

    if 'counter' in session:
       counter = session['counter']   1
       session['counter'] = counter
    else:
       session['counter'] = 1

    self.response.out.write('counter: %d' % counter)