GAE(Google App Engine Datastore API)翻译(1)

 

概览
  具备可伸缩性的 GAE 数据存储中,能够存储和查询的数据对象,称之为 实体: entities. 一个 entity 有一个或多个属性,表示所支持的几种支持的数据类型的一种值。属性还可以关联到其它 entity ,创建一对多或者多对多的关系。
 
 GAE 数据存储能在一个事务当中进行多个操作,并且可以在失败后回滚。在分布式的 Web 应用程序中这尤其重要。因为可能有多个用户同时读取和操作同样的数据。在多个用户都在改变数据时, GAE 数据存储尝试重新执行事务。
 
和传统的数据库不一样, GAE 数据存储利用分布式的结构以存储海量数据。一个 GAE 应用程序可以能够通过定义关联,查询索引来优化数据的分布式存储。
 
GAE 数据存储并不是关系数据库。在提供与传统数据库的相似 介面 的同时,利用它本身具备了可伸缩性的能力,提供了另外的方法来管理和设计数据库。
 
GAE 数据存储 API 用一种别具特色的机制定义数据模型。一个模型描述了一种 实体: entity ,包括多个属性的类型和配置。应用程序利用 python 类来定义模型,类的 attributes 描述属性。一种类型的 entity 对应了一个模型类的对象实例。实例的 python attributes 则对应了属性值。一个 entity 可以用类的构造函数创建,并通过调用 put() 方法之后保存到服务器。
from google.appengine.ext import db
from google.appengine.api import users

classPet(db.Model):
  name
= db.StringProperty(required=True)
  type
= db.StringProperty(required=True, choices=set(["cat","dog","bird"]))
  birthdate
= db.DateProperty()
  weight_in_pounds
= db.IntegerProperty()
  spayed_or_neutered
= db.BooleanProperty()
  owner
= db.UserProperty()

pet
=Pet(name="Fluffy",
          type
="cat",
          owner
=users.get_current_user())
pet
.weight_in_pounds =24
pet
.put()
GAE 数据存储提供了 2 种查询方式介面:一种是查询对象的介面,一种是类 SQL 的语言: GQL 。一个查询返回了多个 entitiy ,放在对应的类模型的实例里面。可以修改,并返回到存储服务器。
 
if users.get_current_user():
  user_pets
= db.GqlQuery("SELECT * FROM Pet WHERE pet.owner = :1",
                          users
.get_current_user())
 
for pet in user_pets:
    pet
.spayed_or_neutered =True

  db
.put(user_pets)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值