日経ソフトウエア2009年1月号の特集2『Google App EngineでWebアプリを公開してみよう』のリスト4を改良してみた。
main.py
ソースとHTMLに分離するためちょっと書き換える
頭に下記追加
import os from google.appengine.ext.webapp import template
class AnimalHandler の def get あたりを変更
class AnimalHandler(webapp.RequestHandler): def get(self): if self.request.get("init"): init_data() query = Pet.all() pets = query.fetch(4) template_values = {'pets':pets} path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write(template.render(path, template_values)) def post(self):
index.html
main.pyと同じ階層に新規ファイルindex.htmlを作成して下記を書く。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <a href='/?init=1'>Initialize data</a> <table border='1'><tr> <th>Name</th><th>Type</th><th>Weight</th> <th>spayed_or_neutered</th></tr><br> {% for pet in pets %} <tr><td>{{ pet.name }}</td> <td>{{ pet.pet_type }}</td> <td>{{ pet.weight_in_pounds }} lbs</td> <td>{{ pet.spayed_or_neutered }}</td> </tr> {% endfor %} </table> <form method='POST'> <input type='submit' value='Neuter Bill'></form> </body> </html>