Проводка из одного RequestHandler в другой в App Engine - PullRequest
1 голос
/ 28 сентября 2011

Цель: Используя базовую среду webapp для движка приложений, я хочу создать новый запрос с данными поста для отправки другому RequestHandler.Что-то вроде pageGenerator.post({'message':'the message','datum1':datum1,...}) ...

Описание проблемы: Один обработчик запроса, назовите его pageGenerator, создает страницу с формой на ней.Когда пользователь отправляет форму, сообщение отправляется другому обработчику: dataProcessor.Если dataProcessor обнаружит какую-либо проблему с отправленными данными, он отправит отправленные данные плюс сообщение об ошибке методу post 'pageGenerator`, а pageGenerator отобразит страницу с сообщением об ошибке.

Как мне передавать данные (и контролировать) туда и обратно, как это?Я бы хотел, чтобы pageGenerator мог получить данные с помощью self.request.get('message').

1 Ответ

3 голосов
/ 28 сентября 2011

Похоже, вы слишком усложняете вещи. Подумайте только о наличии общего метода для отображения формы, которая может быть вызвана при различных обстоятельствах:

class FormHandler(webapp.RequestHandler):

  def get(self):
    self.show_form()

  def post(self):
    if form_is_valid():
      handle_success()
    else:
      self.show_form({'feedback':'Validation failed'})

  def show_form(self, vals={}):
    vals['field1'] = self.request.get('field1')
    vals['field2'] = self.request.get('field2')
    html = template.render('form.html', vals)
    self.response.out.write(html)

Если вам действительно нужно, чтобы «отображаемая форма» и «форма процесса» находились в разных классах обработчиков, вы можете сделать то же самое, определив show_form() в общем родительском классе.

...