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 vista geral, consulte Entidades e chaves da NDB.
Introdução
Uma chave é uma chave do Datastore imutável. As aplicações usam-nos normalmente para fazer referência a entidades. Qualquer entidade que tenha sido armazenada tem uma chave. Para obter a chave de uma entidade, use a propriedade key do modelo.
Para obter uma entidade a partir da respetiva chave, chame o método get() do objeto Key
.
As chaves suportam comparações, por exemplo:
key1 == key2
ou
key1 < key2
.
Estes operadores comparam o ID da aplicação, o espaço de nomes e o "caminho do antepassado" completo. Usam a mesma ordenação que o Datastore usa
para consultas quando ordenam por uma propriedade de chave ou por chave.
repr(key)
ou
str(key)
devolve
uma representação de string semelhante
à forma do construtor mais curto, omitindo a app e o espaço de nomes
a menos que sejam diferentes do valor predefinido.
hash(key)
funciona. Assim, pode armazenar chaves numa tabela hash.
Construtores
Para flexibilidade e conveniência, são suportadas várias assinaturas de construtores.
- class Key(kind1, id1, kind2, id2, ...)
- class Key(pairs=[(kind1, id1), (kind2, id2), ...])
- class Key(flat=[kind1, id1, kind2, id2, ...])
- class Key(urlsafe=string)
-
Os argumentos posicionais kind1, id1, kind2, id2... estão por ordem de "ancestralidade". (Este é um atalho para
flat=[kind1, id1, kind2, id2]
) Os pais vêm antes das crianças.Os argumentos posicionais,
pairs
eflat
as formas de construtor podem, adicionalmente, transmitir outra chave usando parent=key. Os pares (kind, id) da chave principal são inseridos antes dos pares (kind, id) transmitidos explicitamente.O parâmetro de palavra-chave
urlsafe
usa uma referência serializada codificada em base64 segura para a Web, mas é melhor considerá-lo apenas como uma string única opaca.Argumentos de palavras-chave do construtor adicionais:
- app
- especifique o ID da aplicação (uma string)
- namespace
- especifique o espaço de nomes (uma string)
Métodos de instância que não afetam o armazenamento de dados
Os seguintes métodos acedem aos conteúdos de uma chave. Não se envolvem em nenhuma atividade de E/S do Datastore.
- pairs()
-
Devolve uma tupla de pares (tipo, ID).
- flat()
-
Devolve uma tupla de valores de tipo e ID achatados (tipo1, ID1, tipo2, ID2, ...).
- app()
-
Devolve o ID da aplicação.
- id()
-
Devolve o ID da string ou do número inteiro no último par (tipo, ID), ou
None
se a chave estiver incompleta. - string_id()
-
Devolve o ID da string no último par (tipo, ID), ou
None
se a chave tiver um ID de número inteiro ou estiver incompleta. - integer_id()
-
Devolve o ID inteiro no último par (tipo, ID), ou
None
se a chave tiver um ID de string ou estiver incompleta. - namespace()
-
Devolve o espaço de nomes.
- kind()
-
Devolve o tipo no último par (tipo, ID).
- parent()
-
Devolve uma chave construída a partir de todos os pares (tipo, ID), exceto o último (ou
None
se a chave tiver apenas um par (tipo, ID)). - urlsafe()
-
Devolve uma versão serializada da chave codificada em Base64 segura para a Web.
Nota: A string segura para URLs parece enigmática, mas não está encriptada! Pode ser facilmente descodificado para recuperar o tipo e o identificador da entidade original.
- to_old_key()
-
Devolve um
Key
para a API Datastore "antiga" (db
).
Métodos de instância que afetam o Datastore
Estes métodos interagem com o Datastore.
- get(**ctx_options)
-
Devolve a entidade para a chave.
Argumentos
- **ctx_options
- Opções de contexto
- get_async(**ctx_options)
-
Devolve um
Future
cujo resultado final é a entidade para a chave.Argumentos
- **ctx_options
- Opções de contexto
- delete(**ctx_options)
-
Elimine a entidade da chave.
Argumentos
- **ctx_options
- Opções de contexto
- delete_async(**ctx_options)
-
Elimina a entidade de forma assíncrona para a chave.
Argumentos
- **ctx_options
- Opções de contexto
Métodos de classe
- from_old_key(k)
-
Devolve uma chave NDB da API Datastore "antiga" transmitida (
db
)Key
.Argumentos
- **ctx_options
- Opções de contexto