通过键字符串,Google App Engine NDB(数据存储)获取实体



我正在使用Python使用Google App Engine。服务器从用户获取实体密钥,然后我使用此代码带来实体:

 key.get()

,但我也想获得实体,如果它与特定模型相关,我该怎么做?我知道我可以通过此代码做到这一点:

MyModel.get_by_id('my_key')

,但这仅适用于key_name和id,就我而言,我使用键?

从服务器中获取用户提供的键作为URLSAFE字符串后,构造NDB键,例如:

key = ndb.Key(urlsafe=string)

我不确定,为什么您在导入MyModel之后不简单地使用key.get(): - )

但是,这是您使用其ID(无论是字符串还是整数)获得实例的方式:

MyModel.get_by_id(key.id(), parent=key.parent(), app=key.app(), namespace=key.namespace())

关键字是可选的,除非您使用多个名称空间或应用程序ID,否则MyModel是实体组中的子类。

或者,使用key.string_id()key.integer_id()

安全警告:由于您的应用程序接受用户提供的键,请注意,即使是隐秘的URL安全键也可以轻松编码/解码。

有关详细信息,请参见NDB键的参考

最新更新