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
etflat
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