在App Engine中从一个RequestHandler发送到另一个
目标:我想用应用引擎的基本网页应用框架创建一个新的请求,带上一些数据,发送给另一个请求处理器。就像这样 pageGenerator.post({'message':'消息内容','datum1':datum1,...})
...
问题描述:有一个请求处理器,叫做 pageGenerator
,它会生成一个包含表单的页面。当用户提交这个表单时,数据会发送到另一个处理器:dataProcessor
。如果 dataProcessor
发现提交的数据有问题,它会把提交的数据和一个错误信息一起发送回 pageGenerator
的 post 方法,然后 pageGenerator
会显示带有错误信息的页面。
我该如何在这两个处理器之间传递数据(和控制)呢?我希望 pageGenerator
能通过 self.request.get('message')
获取到数据。
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()
来实现同样的效果。