少し戻って Handling Forms With webapp - Google App Engine - Google Code を読みながら、簡単な検索フォームを作ってみる。
基本的には、ほぼ Handling Forms With webapp - Google App Engine - Google Code のまま。ただし、すでにテンプレートの使用を勉強済みだったので、検索結果の表示には別にテンプレートを用意した。
1. result.html の作成
検索結果表示用のテンプレートを作成。result.html とする。
2. cgi モジュールのインポート
import cgi
文字列のエスケープに使用。
3. 検索用のクラスを作成
class Search(webapp.RequestHandler): def post(self): # クエリを取得してエスケープ query = cgi.escape(self.request.get('q')) # テンプレートに渡す値を更新 template_values.update({ 'query': query }) # パスの結合 path = os.path.join(os.path.dirname(__file__), 'result.html') # テンプレートを元に画面に書き出す self.response.out.write(template.render(path, template_values))
4. Search ハンドラの URL マッピングを追加
webapp.WSGIApplication に Search ハンドラの URL マッピングを追加:
def main(): application = webapp.WSGIApplication( [('/', MainPage), ('/search', Search)], debug=True) wsgiref.handlers.CGIHandler().run(application)
5. 実行
とりあえず、検索フォームに入力した文字列を取り出して表示するところまで。