谷歌appengine-db.key()

时间:2010-09-30 10:32:46

标签: python google-app-engine

您正在阅读GAE的文档,需要进行一些小的澄清。如果我的db模型是这样的: -

class Phone(Model):
  phone_name = db.StringProperty()

r = Phone(Nokia, key_name='first')
r.put()

现在,如果我必须检索此实体但我不知道密钥,我可以构建这样的密钥:

k=db.Key('Phone','first')

并且一旦构造了密钥,就可以像这样检索实体: -

r=db.get(k)

1 个答案:

答案 0 :(得分:2)

你很亲密。唯一的主要区别是你必须传递实际的类而不是表示类名的字符串,而你必须使用Key.from_path()工厂方法而不是默认的构造函数:< / p>

class Phone(Model):
  phone_name = db.StringProperty()

r = Phone(phone_name='Nokia', key_name='first')
r.put()

k = db.Key.from_path('Phone', 'first')

r = db.get(k)

但总的来说,我发现依赖自动生成的ID通常比指定自己的密钥名称更好。有没有特别的原因让你做后者?