GoogleAppEngineでデータストアを利用する
データストアとは
Webアプリケーションでは、MySQLやPostgreSQLなどのDBにデータを保存します。
Googleサイトには、専用のDB機能が用意されています。GAEでは、この機能をAPIを介して利用します。
GAEでは、DBを利用する機能を「データストア(Datastore)」と言います。「Datastore API」と言うライブラリとして提供されており、Googleのサーバー内に用意されているDB機能にアクセスするための手段を提供するクラスで構成されています。
データストアは、SQLデータベースとは異なり、事前にテーブルを定義する必要はありません。データストアは、データを保管するのに「モデル」と呼ばれるクラスを利用します。必要な項目(プロパティ)を持ったモデルを定義し、そのインスタンスを作って保存するだけで、データを保管する事ができます。
モデルを定義する
モデルを定義する場合、どういう種類のどんな値を保管するのかをプロパティとして用意します。
class クラス名( db.Model ): プロパティ名 = プロパティクラス …… 必要なだけ記述する ……
プロパティとして保存するデータの項目は、「プロパティクラス」と呼ばれるクラスを使って定義します。
プロパティクラスの詳細なドキュメント
実際に定義してみます。
ここでは「UserData」クラスとして、main.pyの最初(MainHandlerの前)に追記します。
main.pyに追記
class UserData(db.Model): name = db.StringProperty(required=True, multiline=False) mail = db.StringProperty(multiline=False) tel = db.StringProperty(multiline=False) text = db.StringProperty(multiline=True)
ここで使っている「StringProperty」と言うプロパティクラスは、テキストの値を保管するためのものです。
引数には、このプロパティクラスに関する細かな設定情報を記述します。
required……必須項目かどうかを設定
multiline……テキストで複数行の値を認めるかを設定