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 a propriedade 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 usam a mesma ordem usada pelo Datastore para consultas ao fazer o pedido por uma propriedade chave ou chave.

repr(key) ou str(key) retorna uma representação de string semelhante à forma de construtor mais curta, omitindo o app 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 em ordem "ancestral". (Esse é um atalho para flat=[kind1, id1, kind2, id2]) Os pais vêm antes dos filhos.

Os argumentos posicionais, pairs e as formas construtoras flat podem transmitir outra chave usando parent=key. Os pares (kind, id) da chave pai são inseridos antes dos pares (kind, id) serem passados de maneira explícita.

O parâmetro de palavra-chave urlsafe usa uma referência serializada codificada em websafe-base64, mas é melhor pensar nela apenas como uma string exclusiva opaca.

Os argumentos de palavra-chave do construtor adicionais:

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 (kind, id) ou None, caso a chave esteja incompleta.

string_id()

Retorna o código da string no último par (kind, 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 (kind, 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 (kind, id) ou None caso a chave tenha apenas um par (kind, 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 uma Key para a "antiga" API do Datastore (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 da 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" Datastore API (db) Key.

Argumentos

**ctx_options
Opções de contexto
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2