テンプレートとフォームの利用 (7/7)
作成:2010-01-03 11:40
更新:2010-05-10 21:19
更新:2010-05-10 21:19
■MainPageクラスの修正
では、Python側の修正をしましょう。MainPageクラスを以下のリストのように書き換えてください。そして、ブラウザからアクセスしてフォーム送信をしてみましょう。名前を入力して送信すると、「こんにちは、○○さん!」と表示されます。
ここでは、クラスに「post」というメソッドを用意しています。これが、POST送信された時に呼び出されるメソッドです。ここでは、送られたフォームの内容を以下のようにして取り出しています。
後は、その値をもとにテキストを用意し、それをrenderで渡して表示させるだけです。「フォームから送られた値の取り出し方」「テンプレートへの値の表示の仕方」の2つがしっかりわかれば、意外と簡単にWebページが作れるようになることがわかるでしょう。
ここでは、クラスに「post」というメソッドを用意しています。これが、POST送信された時に呼び出されるメソッドです。ここでは、送られたフォームの内容を以下のようにして取り出しています。
text1 = self.request.get('text1')フォームには、'text'という入力フィールドが1つ用意されていました。これは、self.requestというクラスにある「get」メソッドで取り出すことができます。これは、フォームの送信メソッドがGET/POSTどちらでも関係ありません。すべてgetで送られたパラメータの値を取り出すことができます。
後は、その値をもとにテキストを用意し、それをrenderで渡して表示させるだけです。「フォームから送られた値の取り出し方」「テンプレートへの値の表示の仕方」の2つがしっかりわかれば、意外と簡単にWebページが作れるようになることがわかるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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)プログラミング入門」に戻る