Переменные Доступ, получение и публикация - PullRequest
0 голосов
/ 10 июля 2011

как добраться до этих переменных. Это, наверное, довольно легко, но я не думаю, что сегодня.

class Contact(webapp.RequestHandler):
    def get(self):

        self.a = random.randint(1,4)
        self.b = random.randint(0,4)

        template_values = {
            'a': self.a,
            'b': self.b
        }

        path = os.path.join(os.path.dirname(__file__), 'contact.html')
        self.response.out.write(template.render(path, template_values))

    def post(self):
        self.response.out.write(self.a)
        self.response.out.write(self.b)

Trackback:

Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 702, in __call__
    handler.post(*groups)
  File "D:\My Dropbox\project\main.py", line 133, in post
    self.response.out.write(self.a)
AttributeError: 'Contact' object has no attribute 'a'

1 Ответ

4 голосов
/ 10 июля 2011

Каждый запрос создает новый экземпляр обработчика.Например, вы можете добавить этот конструктор в ваш обработчик:

class AppHandler(webapp.RequestHandler):
    def __init__(self, *args, **kwargs):
        logging.debug('handler "%s" created' % self)
        super(AppHandler, self).__init__(*args, **kwargs)
    <...>

и сделать два запроса, тогда в ваших журналах вы увидите что-то вроде этого:

DEBUG    2011-07-10 13:36:17,009 app.py:19] handler "<__main__.AppHandler object at 0x98dad8c>" created
<...>
DEBUG    2011-07-10 13:36:52,563 app.py:19] handler "<__main__.AppHandler object at 0x98de14c>" created

Если вы хотитеполучить некоторые данные между запросами, которые вы можете попытаться использовать с помощью некоторой реализации сессий.Например это: https://github.com/dound/gae-sessions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...