O Python 2 não é mais compatível com a comunidade. Recomendamos que você migre aplicativos do Python 2 para o Python 3.

Classe Key do NDB

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 construtor flat 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