1

目标:使用应用程序引擎的基本 webapp 框架我想创建一个带有发布数据的新请求,以发送到另一个 RequestHandler。像pageGenerator.post({'message':'the message','datum1':datum1,...})...

问题描述:一个请求处理程序,调用它pageGenerator,创建一个带有表单的页面。当用户提交表单时,帖子会转到不同的处理程序:dataProcessor. 如果dataProcessor发现提交的数据有问题,它会将提交的数据和错误消息发送到“pageGenerator”的 post 方法,并且 pageGenerator 将提供带有错误消息的页面。

如何像这样来回传递数据(和控制)?我希望pageGenerator能够使用self.request.get('message').

4

1 回答 1

3

听起来你把事情复杂化了。考虑只使用一个通用方法来显示可以在不同情况下调用的表单:

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()在一个公共父类中定义来完成同样的事情。

于 2011-09-28T19:56:27.883 回答