Key
类的实例代表不可变的 Datastore 键。
此页面包含 API 参考文档。如需查看概览,请参阅 NDB 实体和键。
简介
键是指不可变的 Datastore 键。应用通常使用它们来引用实体。已存储的任何实体都有一个键。如需获取实体的键,请使用模型的 key 属性。
如需通过实体键检索实体,请调用 Key
对象的 get() 方法。
键支持比较,例如 key1 == key2
或 key1 < key2
。
这些运算符比较应用 ID、命名空间和完整的“祖先实体路径”。 当按键属性或键进行排序时,它们使用与 Datastore 用于查询相同的排序。
repr(key)
或 str(key)
会返回类似于最短构造函数形式的字符串表示形式,并省略 app 和 namespace 参数(除非它们与默认值不同)。
hash(key)
作品。因此,您可以将键存储在哈希表中。
构造函数
为了实现灵活性和便利性,支持使用多个构造函数签名。
- class Key(kind1, id1, kind2, id2, ...)
- class Key(pairs=[(kind1, id1), (kind2, id2), ...])
- class Key(flat=[kind1, id1, kind2, id2, ...])
- class Key(urlsafe=string)
-
位置参数 kind1、id1、kind2、id2 等按“祖先实体”排序。(这是
flat=[kind1, id1, kind2, id2]
的快捷方式)父级排在子级之前。位置参数
pairs
和flat
构造函数形式还可以使用 parent=key 传入另一个键。父键的 (kind, id) 对插入在显式传入的 (kind, id) 对之前。urlsafe
关键字参数使用网络安全 base64 编码的序列化引用,但最好将其视为不透明的唯一字符串。其他构造函数关键字参数如下:
- 应用
- 指定应用 ID(字符串)
- namespace
- 指定命名空间(字符串)
不影响 Datastore 的实例方法
以下方法访问键的内容。它们不参与任何 Datastore I/O 活动。
- pairs()
-
返回 (kind, id) 对的元组。
- flat()
-
返回拼合的 (kind1, id1, kind2, id2, ...) 的种类和 ID 值的元组。
- app()
-
返回应用 ID。
- id()
-
返回最后一个 (kind, id) 对中的字符串或整数 ID,如果键不完整,则返回
None
。 - string_id()
-
返回最后一个 (kind, id) 对中的字符串 ID,如果该键具有整数 ID 或键不完整,则返回
None
。 - integer_id()
-
返回最后一个 (kind, id) 对中的整数 ID,如果该键具有字符串 ID 或键不完整,则返回
None
。 - namespace()
-
返回命名空间。
- kind()
-
返回最后一个 (kind, id) 对中的种类。
- parent()
-
返回由除最后一个 (kind, id) 对之外的所有对构造的键(如果该键只有一个 (kind, id) 对,则返回
None
)。 - urlsafe()
-
返回键的网络安全 base64 编码序列化版本。
注意: 网址安全字符串看起来已加密,但实际上并未加密! 它可以被轻易解码以恢复原始实体的种类和标识符。
- to_old_key()
-
返回“旧”Datastore API (
db
) 的Key
。
影响 Datastore 的实例方法
以下方法与 Datastore 互动。
- get(**ctx_options)
-
返回键的实体。
参数
- **ctx_options
- 上下文选项
- get_async(**ctx_options)
-
返回一个最终结果为键的实体的
Future
。参数
- **ctx_options
- 上下文选项
- delete(**ctx_options)
-
删除键的实体。
参数
- **ctx_options
- 上下文选项
- delete_async(**ctx_options)
-
异步删除键的实体。
参数
- **ctx_options
- 上下文选项