Classe de chave 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 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 e flat 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