2010/03/17

[Google App Engine]Storing Dataを使ってDataをStore

Google App Engineの最大の特徴の一つといってもいいStoring Dataを使ってDataを登録する方法を書いてみたいと思います。

import cgi
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db

#データモデル
class PaintingData(db.Model):
personalid = db.StringProperty()

class StoringData(webapp.RequestHandler):
def post(self):
# print self.request.get("hoge")

#トランザクションの実行
paintingdata = PaintingData()
paintingdata.personalid = self.request.get("personalid")

#コミットをかける
paintingdata.put()

#データを表示する
def get(self):
paintingdata = db.GqlQuery("SELECT * FROM PaintingData")
for each_paintingdata in paintingdata:
self.response.out.write("<div>personalid:%s</div>" % each_paintingdata.personalid)

application = webapp.WSGIApplication(
[('/paint/storingdata', StoringData)]
, debug=True
)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

実際に、実行してみるとデータが保存されました。

で、確認方法ですが、このアドレスを直接参照すると、getメソッドがコールされるので、そこでGQLをかまして結果の表示を行いました。

これ最初できたとき、超感動しました。

ですが、正直、このプログラムにはまだ問題点があって、

トランザクションが失敗した時の例外処理をどうするのか?
登録時にform変数のエスケープを行わなくていいのか?

などがあります。

これらの対処方法については今、調査中なのでおいおい書いていきたいと思います。

↓の本、まだ立ち読みしていないのでわからないのですが、関数がいっぱい書いてあるようなら買おうかなー。

0 コメント:

コメントを投稿