我仍然试图了解数据存储的工作原理。我以前没有数据库的经验,所以这不是一个相互冲突的范式;我想我只是对NDB的祖先结构感到困惑。
假设我有这个模型类:
class Spam(Model.ndb)
eggs = ndb.StringProperty();
所以我创建一个实例并将其存储为:
foo = Spam(eggs="some string")
foo.put()
我理解put()
会返回一个我可以轻松调用get()
的密钥,如果我尝试从同一个脚本访问它,但有没有办法指定我自己的密钥,所以我可以从我应用中的其他脚本轻松访问foo
实体吗?
我意识到我可以为此foo
指定一个父级:
foo = Spam(parent=ndb.Key("Bar","Baz"),eggs="some string")
但是,从那里开始,我将如何使用"Bar"
和/或"Baz"
访问其他脚本中的foo
?
答案 0 :(得分:1)
如果您有层次结构,则使用父级。因此,如果您有食谱书,您可以将该书作为父母和每个食谱作为孩子。我不认为这就是你想要的。
如果要设置密钥,请执行以下操作:
SuperEggs= Spam(id='SuperEggs', eggs="2 egg whites")
SuperEggs.put()
你总是可以让App引擎设置自己的密钥,这样可以防止争用和意外的过度骑行,当你想再次访问实体时,只需在某些字段上进行操作即可。添加名称并搜索。
仅供参考,来自看跌期权的返回ID允许您从应用程序的任何部分(或任何授权的应用程序)进行访问。数据存储区是全局的,不是特定于脚本的。