Uma instância da classe Key
representa uma chave do Datastore imutável.
Esta página tem documentação de referência da API. Para uma visão geral, consulte Entidades e chaves do NDB.
Introdução
Key é uma chave do Datastore imutável. Aplicativos normalmente as usam para se referir a entidades. Qualquer entidade que tiver sido armazenada tem uma chave. Para receber a chave de uma entidade, use o property key do modelo.
Para recuperar uma entidade da chave, chame o método get() do objeto Key
.
Chaves aceitam comparações. Por exemplo, key1 == key2
ou key1 < key2
.
Esses operadores comparam o ID do aplicativo, o namespace e o "caminho ancestral" completo. Eles utilizam a mesma ordem usada pelo Datastore para consultas ao fazer o pedido por um property chave ou por uma chave.
repr(key)
ou str(key)
retorna uma representação de string semelhante à forma de construtor mais curta, omitindo o aplicativo e o namespace, a menos que eles sejam diferentes do valor padrão.
hash(key)
funciona. Por isso, armazene chaves em uma tabela de hash.
Construtores
Para flexibilidade e praticidade, várias assinaturas de construtor são aceitas.
- classe Key(kind1, id1, kind2, id2, ...)
- classe Key(pairs=[(kind1, id1), (kind2, id2), ...])
- classe Key(flat=[kind1, id1, kind2, id2, ...])
- classe Key(urlsafe=string)
-
Os argumentos posicionais kind1, id1, kind2, id2... estão na ordem "ancestral". (Este é um atalho para
flat=[kind1, id1, kind2, id2]
) Os pais vêm antes dos filhos.Os argumentos posicionais,
pairs
e as formas de construtorflat
também podem transmitir outra chave usando parent=key. Os pares (kind, id) da chave pai são inseridos antes dos pares (kind, id) transmitidos explicitamente.O parâmetro de palavra-chave
urlsafe
usa uma referência serializada codificada pela websafe-base64, mas é melhor pensar nela apenas como uma string opaca única.Outros argumentos de palavra-chave do construtor:
- app
- especifique o ID do aplicativo (uma string)
- namespace
- especifique o namespace (uma string)
Métodos de instância que não afetam o armazenamento de dados
Os métodos a seguir acessam o conteúdo de uma chave. Eles não participam de nenhuma atividade de E/S do Datastore.
- pairs()
-
Retorna uma tupla de pares (kind, id).
- flat()
-
Retorna uma tupla de valores kind e id simples (kind1, id1, kind2, id2...).
- app()
-
Retorna o ID do aplicativo.
- id()
-
Retorna o código da string ou do inteiro no último par (tipo, id) ou
None
, caso a chave esteja incompleta. - string_id()
-
Retorna o código da string no último par (tipo, id) ou
None
, caso a chave tenha um código do inteiro ou esteja incompleta. - integer_id()
-
Retorna o código do inteiro no último par (tipo, id) ou
None
, caso a chave tenha um código do inteiro ou esteja incompleta. - namespace()
-
Retorna o namespace.
- kind()
-
Retorna o tipo no último par (kind, id).
- parent()
-
Retorna uma chave criada com base em todos, exceto o último par (tipo, id) ou
None
caso a chave tenha apenas um par (tipo, id). - urlsafe()
-
Retorna uma versão serializada codificada em websafe-base64 da chave.
Observação: a string segura para URL parece enigmática, mas não é criptografada. Ela pode ser facilmente decodificada para recuperar o tipo e o identificador da entidade original.
- to_old_key()
-
Retorna um
Key
para a API Datastore "antiga" (db
).
Métodos de instância que afetam o armazenamento de dados
Esses métodos interagem com o armazenamento de dados.
- get(**ctx_options)
-
Retorna a entidade da chave.
Argumentos
- **ctx_options
- Opções de contexto
- get_async(**ctx_options)
-
Retorna um
Future
com um resultado eventual que é a entidade de Key.Argumentos
- **ctx_options
- Opções de contexto
- delete(**ctx_options)
-
Exclua a entidade da Key.
Argumentos
- **ctx_options
- Opções de contexto
- delete_async(**ctx_options)
-
Exclua de maneira assíncrona a entidade da Key.
Argumentos
- **ctx_options
- Opções de contexto
Métodos de classe
- from_old_key(k)
-
Retorna uma chave NDB da transmitida na "antiga" API Datastore (
db
)Key
.Argumentos
- **ctx_options
- Opções de contexto