インフラを気にしないで良いという事が、これほど楽ちんなのかという感じ。
いちいち、接続先を指定しなくても良くて、インスタンスを生成してPutすればそれがInsertになるし、GQLでインスタンスのリストを取得して変更してPutすればUpdateになるし、Delete()すれば削除になる。
超簡単。
エンティティの定義も
from google.appengine.ext import db class nabeatsuUserMaster(db.Model): #ナベアツを利用するユーザのマスタ author = db.UserProperty() count = db.IntegerProperty() date = db.DateTimeProperty(auto_now_add=True) saidWhen3 = db.StringProperty() saidWhen5 = db.StringProperty()
ってdb.Modelを継承したクラスを作成するだけで良い。
また、GQLってのがSQLに似ているんだけど、エンティティのプロパティの一部だけ持ってくるという事はできなくて、常に
#パラメタライズドクエリみたいな感じで:authorを定義しておいて、author=userで割り当てを行う。 #これもいろんなやり方があって、必ずしも名前が必要というわけではない。 datalist = nabeatsuUserMaster.gql("where author = :author",author=user) または、 datalist = db.GqlQuery("select * from nabeatsuUserMaster where author = :author",author=user)
と言った風にちゃんと全項目指定でnabeatsuUserMaster型として持ってくる必要がある。
個人的には、前者が好み。
DataStoreの詳細については、http://code.google.com/appengine/docs/datastore/を読むといいです。
比較的サンプルが多いし説明が平易なので、英語が分からなくても、なんとなくイケル感じ。