Clase Key de NDB

Una instancia de la clase Key representa una clave de Datastore inmutable.

Esta página contiene documentación de referencia de la API. Para obtener una descripción general, consulta Entidades y claves de NDB.

Introducción

Una clave es una clave de Datastore inmutable. Las aplicaciones suelen usarlos para hacer referencia a entidades. Todas las entidades almacenadas tienen una clave. Para obtener la clave de una entidad, usa la propiedad key del modelo. Para obtener una entidad a partir de su clave, llama al método get() del objeto Key.

Las claves admiten comparaciones, por ejemplo, key1 == key2 o key1 < key2. Estos operadores comparan el ID de la aplicación, el espacio de nombres y la ruta de ancestro completa. Usan el mismo orden que Datastore para las consultas cuando se ordenan por una propiedad de clave o por clave.

repr(key) o str(key) devuelve una representación de cadena similar a la forma más corta del constructor, omitiendo la aplicación y el espacio de nombres a menos que sean diferentes del valor predeterminado.

hash(key) funciona. Por lo tanto, puedes almacenar claves en una tabla hash.

Constructores

Para ofrecer flexibilidad y comodidad, se admiten varias firmas de constructor.

class Key(kind1, id1, kind2, id2, ...)
class Key(pairs=[(kind1, id1), (kind2, id2), ...])
class Key(flat=[kind1, id1, kind2, id2, ...])
class Key(urlsafe=string)

Los argumentos posicionales kind1, id1, kind2, id2... están en orden de "ancestros". (Este es un acceso directo para flat=[kind1, id1, kind2, id2]) Los padres son lo primero.

Las formas de constructor positional-arguments, pairs y flat también pueden introducir otra clave mediante parent=key. Los pares (kind, id) de la clave parent se insertan antes de los pares (kind, id) que se introducen explícitamente.

El parámetro de palabra clave urlsafe usa una referencia serializada codificada en base64 segura para la Web, pero es mejor considerarlo como una cadena única opaca.

Argumentos de palabras clave de constructor adicionales:

aplicación
especifica el ID de la aplicación (una cadena)
namespace
especifica el espacio de nombres (una cadena)

Métodos de instancia que no afectan al almacén de datos

Los siguientes métodos acceden al contenido de una clave. No realizan ninguna actividad de entrada/salida de Datastore.

pares()

Devuelve una tupla de pares (tipo, ID).

flat()

Devuelve una tupla de valores de tipo e ID aplanados (tipo1, ID1, tipo2, ID2, ...).

app()

Devuelve el ID de la aplicación.

id()

Devuelve el ID de cadena o entero del último par (tipo, ID) o None si la clave está incompleta.

string_id()

Devuelve el ID de cadena del último par (tipo, ID) o None si la clave tiene un ID entero o está incompleta.

integer_id()

Devuelve el ID entero del último par (tipo, ID) o None si la clave tiene un ID de cadena o está incompleta.

namespace()

Devuelve el espacio de nombres.

kind()

Devuelve el tipo del último par (tipo, ID).

parent()

Devuelve una clave creada a partir de todos los pares (tipo, ID) excepto el último. (o None si la clave solo tiene un par (tipo, ID)).

urlsafe()

Devuelve una versión serializada de la clave codificada en base64 segura para la Web.

Nota: La cadena segura para URLs parece críptica, pero no está cifrada. Se puede decodificar fácilmente para recuperar el tipo y el identificador de la entidad original.

to_old_key()

Devuelve un Key para la API de Datastore "antigua" (db).

Métodos de instancia que afectan al almacén de datos

Estos métodos interactúan con Datastore.

get(**ctx_options)

Devuelve la entidad de la clave.

Argumentos

**ctx_options
Opciones de contexto
get_async(**ctx_options)

Devuelve un Future cuyo resultado final es la entidad de la clave.

Argumentos

**ctx_options
Opciones de contexto
delete(**ctx_options)

Elimina la entidad de la clave.

Argumentos

**ctx_options
Opciones de contexto
delete_async(**ctx_options)

Elimina de forma asíncrona la entidad de la clave.

Argumentos

**ctx_options
Opciones de contexto

Métodos de clase

from_old_key(k)

Devuelve una clave de NDB de la API de Datastore "antigua" que se ha pasado. (db) Key.

Argumentos

**ctx_options
Opciones de contexto