libro
www.tuyano.com
PythonによるGoogle App Engine(GAE)プログラミング入門

テンプレートとフォームの利用 (7/7)

作成:2010-01-03 11:40
更新:2010-05-10 21:19

■MainPageクラスの修正

では、Python側の修正をしましょう。MainPageクラスを以下のリストのように書き換えてください。そして、ブラウザからアクセスしてフォーム送信をしてみましょう。名前を入力して送信すると、「こんにちは、○○さん!」と表示されます。

ここでは、クラスに「post」というメソッドを用意しています。これが、POST送信された時に呼び出されるメソッドです。ここでは、送られたフォームの内容を以下のようにして取り出しています。
text1 = self.request.get('text1')
フォームには、'text'という入力フィールドが1つ用意されていました。これは、self.requestというクラスにある「get」メソッドで取り出すことができます。これは、フォームの送信メソッドがGET/POSTどちらでも関係ありません。すべてgetで送られたパラメータの値を取り出すことができます。

後は、その値をもとにテキストを用意し、それをrenderで渡して表示させるだけです。「フォームから送られた値の取り出し方」「テンプレートへの値の表示の仕方」の2つがしっかりわかれば、意外と簡単にWebページが作れるようになることがわかるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

class MainPage(webapp.RequestHandler):
    
  def get(self):
    params = {'message':'なまえを入力してください。'}
    fpath = os.path.join(os.path.dirname(__file__),'views','home.html')
    html = template.render(fpath,params)
    self.response.headers['Content-Type'] = 'text/html'
    self.response.out.write(html)
    
  def post(self):
    text1 = self.request.get('text1')
    params = {'message':'こんにちは、' + text1 + 'さん!'}
    fpath = os.path.join(os.path.dirname(__file__),'views','home.html')
    html = template.render(fpath,params)
    self.response.headers['Content-Type'] = 'text/html'
    self.response.out.write(html)

※関連コンテンツ

「PythonによるGoogle App Engine(GAE)プログラミング入門」に戻る