Classe de clé NDB

Une instance de la classe Key représente une clé Datastore immuable.

Cette page contient une documentation de référence sur l'API. Si vous souhaitez obtenir une présentation, consultez Entités NDB et clés.

Présentation

Une clé est une clé Datastore immuable. Les applications les utilisent généralement pour faire référence à des entités. Toute entité stockée a une clé. Pour obtenir la clé d'une entité, utilisez la propriété key du modèle. Pour récupérer une entité à l'aide de sa clé, appelez la méthode get() de l'objet Key.

Les clés sont compatibles avec les comparaisons, par exemple key1 == key2 ou key1 < key2. Ces opérateurs comparent l'ID application, l'espace de noms et le "chemin d'ancêtre" complet. Ils utilisent la même méthode de classement que celle appliquée aux requêtes dans Datastore pour les classer par propriété de clé ou par clé.

repr(key) ou str(key) renvoient une représentation de chaîne semblable à la forme de constructeur la plus courte, en omettant l'application et l'espace de noms, à moins qu'ils ne diffèrent de la valeur par défaut.

hash(key) fonctionne. Vous pouvez donc stocker des clés dans une table de hachage.

Constructeurs

Pour plus de souplesse et de commodité, plusieurs signatures de constructeur sont acceptées.

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

Les arguments positionnels kind1, id1, kind2, id2... suivent l'ordre des "ancêtres". (Il s'agit d'un raccourci pour flat=[kind1, id1, kind2, id2]). Les parents viennent avant les enfants.

Les arguments positionnels, et les formes de constructeur pairs et flat peuvent également être transmis à une autre clé à l'aide des paires parent=key. Les paires (kind, id) de la clé parente sont insérées avant les paires (kind, id) transmises explicitement.

Le paramètre de mot clé urlsafe utilise une référence sérialisée encodée en base64 garanti sur le Web, mais il est préférable de la considérer comme une chaîne unique opaque.

Arguments de mot clé de constructeur supplémentaires :

app
Spécifie l'ID application (une chaîne).
namespace
Spécifie l'espace de noms (une chaîne).

Méthodes d'instance qui n'affectent pas le datastore

Les méthodes suivantes permettent d'accéder au contenu d'une clé. Elles n'interviennent dans aucune activité d'E/S du datastore.

pairs()

Renvoie un tuple de paires (kind, id).

flat()

Renvoie un tuple de valeurs "kind" et "id" aplaties (kind1, id1, kind2, id2, ...).

app()

Renvoie l'ID application.

id()

Renvoie l'ID de type "string" ou "integer" (chaîne ou entier) dans la dernière paire (kind, id), ou la valeur None si la clé est incomplète.

string_id()

Renvoie l'ID de type "string" (chaîne) dans la dernière paire (kind, id), ou la valeur None si la clé possède un ID de type "integer" (entier) ou est incomplète.

integer_id()

Renvoie l'ID de type "integer" (entier) dans la dernière paire (kind, id), ou la valeur None si la clé possède un ID de type "string" (chaîne) ou est incomplète.

namespace()

Renvoie l'espace de noms.

kind()

Renvoie le genre dans la dernière paire (kind, id).

parent()

Renvoie une clé construite à partir de toutes les paires à l'exception de la dernière paire (kind, id) (ou la valeur None si la clé ne possède qu'une seule paire "(kind, id)").

urlsafe()

Renvoie une version de clé sérialisée et encodée en base 64 garanti sur le Web.

Remarque : La chaîne sécurisée pour les URL semble difficile à déchiffrer, mais elle n'est pas chiffrée ! Elle peut être facilement décodée pour récupérer le genre et l'identifiant de l'entité d'origine.

to_old_key()

Renvoie une Key pour l'ancienne API Datastore (db).

Méthodes d'instance qui affectent le datastore

Ces méthodes interagissent avec le datastore.

get(**ctx_options)

Renvoie l'entité de la clé.

Arguments

**ctx_options
Options de contexte
get_async(**ctx_options)

Renvoie un objet Future dont le résultat final est l'entité de la clé.

Arguments

**ctx_options
Options de contexte
delete(**ctx_options)

Supprime l'entité de la clé.

Arguments

**ctx_options
Options de contexte
delete_async(**ctx_options)

Supprime de manière asynchrone l'entité de la clé.

Arguments

**ctx_options
Options de contexte

Méthodes des classes

from_old_key(k)

Renvoie une clé NDB à partir de la clé Key transmise à l'ancienne API Datastore (db).

Arguments

**ctx_options
Options de contexte