最終更新: currencybuilding 2009年02月28日(土) 17:01:39履歴
ここでは、Google App Engine SDK を使って、Pythonプログラミングをします。
プログラミングの課題は、Happyブログパーツです。
私は、Pythonプログラミングの経験も知識もないので、かなり遠回りをしますので、あらかじめご了承ください。(^^;)
Google App Engine セットアップ方法で下準備が整えば、あとは、下記URLのスタートガイドのHello, World!で実践となります。
スタートガイド
http://code.google.com/intl/ja/appengine/docs/pyth...
スタートガイド(日本語訳)
http://www19.atwiki.jp/googleappengine/pages/15.ht...
このスタートガイドにあるHello Worldは、SDKのnew_project_templateに入っています。
こんな感じで、サンドボックスなプロジェクトを作ってみます。
動作を確認するには、
この後は、 helloworld/main.pyをノートパッドやPython.orgのテキストエディタIDLEで編集します。
IDLEは、.py拡張子の付いたファイルを右クリックしたときに表示されるメニュー(Edit with IDLE)で起動します。
スタートガイド
http://code.google.com/intl/ja/appengine/docs/pyth...
スタートガイド(日本語訳)
http://www19.atwiki.jp/googleappengine/pages/15.ht...
このスタートガイドにあるHello Worldは、SDKのnew_project_templateに入っています。
こんな感じで、サンドボックスなプロジェクトを作ってみます。
> cd "C:\Program Files\Google" > xcopy google_appengine\new_project_template helloworld\のようにディレクトリごとコピーします。
動作を確認するには、
> google_appengine\dev_appserver.py helloworldでサーバを起動し、http://localhost:8080/ でアクセスすると、Hello World! と表示されるのが確認できます。
この後は、 helloworld/main.pyをノートパッドやPython.orgのテキストエディタIDLEで編集します。
IDLEは、.py拡張子の付いたファイルを右クリックしたときに表示されるメニュー(Edit with IDLE)で起動します。
いきなりオブジェクト指向なプログラミングではじめてみます。
helloworld/main.pyにクラスを一つ追加してみます。
スタートガイドの日本語訳が結構役にたちますが、ここでは、せっかくなので、Happyブログパーツの仕様を順々に実装していきましょう。
最初に作成するクラスは、ユーザの情報を格納するデータクラスにします。
クラス名はPersonとし、名前と残高と最終更新日時を保存できるようにします。
こんな感じになります。
クラスからオブジェクトを生成して、次のように値を初期化してみます。
これだけでは、動作するかわからないので、以下のように、HelloWorldの後ろに値を表示してみます。
http://localhost:8080/でアクセスすると、二人分の初期値が表示されます。
これだけでは、なんのインタラクションもないので、
次は、「Google App Engineでデータベースを使ってみる」で新規アカウントの受付を作ってみます。
helloworld/main.pyにクラスを一つ追加してみます。
スタートガイドの日本語訳が結構役にたちますが、ここでは、せっかくなので、Happyブログパーツの仕様を順々に実装していきましょう。
最初に作成するクラスは、ユーザの情報を格納するデータクラスにします。
クラス名はPersonとし、名前と残高と最終更新日時を保存できるようにします。
こんな感じになります。
class Person(db.Model): name = db.StringProperty(multiline=True) #名前 balance = db.IntegerProperty() #残高 date = db.DateTimeProperty(auto_now_add=True) #最終更新日時googleのライブラリであるdb.Modelクラスを継承して作成しているので、以下の1行を頭の方に追加しておきます。
from google.appengine.ext import dbこのdb.Modelクラスがくせ者で、googleのクラウド上に永続的にデータを保存できてしまうのです。今の段階では、その機能を使いませんが、後々のために、このdb.Modelクラスを使っておきます。
クラスからオブジェクトを生成して、次のように値を初期化してみます。
person_a = Person(name='person_a') # person_a をDB person_a.balance = 200 # ポイントを200付与 person_b = Person(name='person_b') person_b.balance = 2002人のデータを生成したことになります。
これだけでは、動作するかわからないので、以下のように、HelloWorldの後ろに値を表示してみます。
class Person(db.Model): name = db.StringProperty(multiline=True) #名前 balance = db.IntegerProperty() #残高 date = db.DateTimeProperty(auto_now_add=True) #最終更新日時 class MainHandler(webapp.RequestHandler): def get(self): self.response.out.write('Hello world!<br>') person_a = Person(name='person_a') # person_a をDB person_a.balance = 200 # ポイントを200付与 person_b = Person(name='person_b') person_b.balance = 200 self.response.out.write(self.balanceHTML(person_a)) self.response.out.write(self.balanceHTML(person_b)) def balanceHTML(self,person): html = 'name:' + person.name + "/" html += 'balance:' + str(person.balance) html += 'date:' + person.date.ctime() html += "<br>" return html
http://localhost:8080/でアクセスすると、二人分の初期値が表示されます。
これだけでは、なんのインタラクションもないので、
次は、「Google App Engineでデータベースを使ってみる」で新規アカウントの受付を作ってみます。