2011/1/15に第20回北海道開発オフが開催されたので参加してきた。 今回は第20回記念ということで共同開発をやってみようということに。Ruby on RailsチームとGoogle App Engine(Python or Java)にわかれて共通の使用のWebアプリケーションを作ることに。僕はGoogle App Engineチームに(半ば強制的に)。 Webアプリの仕様は ユーザーのログインができること リンクでキャラクター(冒険者)のパラメータが変化すること メンバーで話し合って結局Pythonで行くことに。 @shuji_w6e さんを中心に最初はGoogle App EngineでのHello Worldから簡単にモデルとテンプレートを作成して、webappフレームワークを使用したアプリを作成。午後からは目標となるアプリケーションの作成を進めた。途中リファクタリングなども盛り込んでくれて結構勉強になった。 仕様の一つであるユーザーのログインはGoogle App EngineのGoogleアカウント認証を利用することに。app.yamlに以下のようにloginの設定を記述するのが簡単。 - url: /.* static: boukensya_main.py login: required アプリケーション作成は上記にあるboukensya_main.pyに処理を記述することとなる。 URLパターンによって処理を分けるのに、以下のようにリストを作成してお決まりのメソッドに渡せば分岐される。 application = webapp.WSGIApplication([ ('/home', HomePage), ('/action/(.*)', ActionPage), ('/.*', IndexPage), ], debug=True) URLのパターンは正規表現で定義できる。IndexPageやMainPageは、後述する分岐された各処理の内容が記述されるクラス BasePegeクラスはテンプレートファイル名とデータを受け取ってお決まりのレンダリングメソッドを呼ぶメソッドを用意。IndexPageやMainPag...