1

目標:アプリ エンジンの基本的な webapp フレームワークを使用して、投稿データを使用して新しい要求を作成し、別の RequestHandler に送信したいと考えています。みたいなpageGenerator.post({'message':'the message','datum1':datum1,...})...

問題の説明: 1 つの要求ハンドラー (それを と呼び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 に答える