我们的程序与抽象模型互动,因此不需要管理细节。
与关系型数据库大不相同,以至于谷歌称之为datastore,而非database。
App数据存储在数个不同位置,依据best-of-breed consensus protocol。
datastore最好理解为object database. datastore中的一个object理解为一个entity。
Entity: key – data
一个entity在整个系统中具有一个唯一识别key。可以根据key快速找到entity。
Key可以作为data被存储在entity中,这样能相互创建引用。
key分为几部分:
- application‘s id
- kind
- entity ID [key name(string)/ID(integer)]
entity创建后key不能变。
entity的data存储在一个或多个property中,每个property都有name和至少一个value。
========*========
Python Datastore API
Python objects来表示datastore entity:
objects的class表示了entity kind,class name表示了entity kind name。
通过继承基类,创建新class,来创建新kind的entity。
这个对象的属性对应entity的property。
调用entity的class的实例的key方法,得到一个key实例,通过调用这个实例的kind方法、d方法,可以得到这个entity的key的kind/id。
*操作注意:在测试entity之后,更新entity之前,这段空挡期间,其他程序可能更改了数据库,要避免错误,必须使用transaction。
GAE Datastore Entities,布布扣,bubuko.com