Eine Instanz der Key
-Klasse stellt einen unveränderlichen Datenspeicherschlüssel dar.
Sie finden auf dieser Seite die API-Referenzdokumentation. Eine Übersicht erhalten Sie unter NDB-Entitäten und -Schlüssel.
Einführung
Ein Schlüssel ist ein unveränderlicher Datenspeicherschlüssel. Anwendungen verweisen damit normalerweise auf Entitäten. Jede gespeicherte Entität hat einen Schlüssel. Zum Abrufen des Schlüssels einer Entität verwenden Sie die Schlüssel-Property des Modells.
Mit der Methode get() des Key
-Objekts können Sie eine Entität anhand ihres Schlüssels abrufen.
Schlüssel unterstützen Vergleiche, z. B. key1 == key2
oder key1 < key2
.
Diese Operatoren vergleichen die Anwendungs-ID, den Namespace und den vollständigen "Ancestor-Pfad". Sie verwenden die gleiche Reihenfolge, die der Datenspeicher für Abfragen verwendet, wenn die Sortierung nach Schlüsselattribut oder Schlüssel erfolgt.
repr(key)
oder str(key)
gibt eine Stringdarstellung zurück, die der kürzesten Konstruktorform ähnelt, wobei die Anwendung und der Namespace weggelassen werden, sofern sie nicht vom Standardwert abweichen.
hash(key)
funktioniert, können Sie Schlüssel in einer Hash-Tabelle speichern.
Konstruktoren
Aus Gründen der Flexibilität und Benutzerfreundlichkeit werden mehrere Konstruktorsignaturen unterstützt.
- Klasse Schlüssel(kind1, id1, kind2, id2, ...)
- Klasse Schlüssel(pairs=[(kind1, id1), (kind2, id2), ...])
- Klasse Schlüssel(flat=[kind1, id1, kind2, id2, ...])
- Klasse Schlüssel(urlsafe=string)
-
Die Positionsargumente kind1, id1, kind2, id2... sind nach "Ancestor" sortiert. (Dies ist eine Kurzschreibweise für
flat=[kind1, id1, kind2, id2]
). Übergeordnete Elemente stehen vor untergeordneten Elementen.Die Positionsargumente,
pairs
, und die Konstruktorformenflat
können zusätzlich einen weiteren Schlüssel mit parent=key übergeben. Die Paare (kind, id) des übergeordneten Schlüssels werden eingefügt, bevor die Paare (kind, id) explizit übergeben werden.Der Schlüsselwortparameter
urlsafe
verwendet eine mit base64 websicher codierte, serialisierte Referenz. Betrachten Sie ihn jedoch einfach als einen undurchsichtigen eindeutigen String.Zusätzliche Schlüsselwortargumente für den Konstruktor:
- app
- Gibt die Anwendungs-ID als String an
- Namespace
- Gibt den Namespace als String an
Instanzmethoden, die den Datenspeicher nicht beeinflussen
Die folgenden Methoden greifen auf den Inhalt eines Schlüssels zu. Sie führen keine E/A-Datenspeicheraktivitäten aus.
- pairs()
-
Gibt ein Tupel von (kind, id)-Paaren zurück
- flat()
-
Gibt ein Tupel von vereinfachten Typ- und ID-Werten (kind1, id1, kind2, id2, …) zurück
- app()
-
Gibt die Anwendungs-ID zurück
- id()
-
Gibt die String- oder Ganzzahl-ID im letzten (kind, id)-Paar oder
None
zurück, falls der Schlüssel unvollständig ist - string_id()
-
Gibt die String-ID im letzten (kind, id)-Paar oder
None
zurück, falls der Schlüssel eine Ganzzahl-ID hat oder unvollständig ist - integer_id()
-
Gibt die Ganzzahl-ID im letzten (kind, id)-Paar oder
None
zurück, falls der Schlüssel eine String-ID hat oder unvollständig ist - namespace()
-
Gibt den Namespace zurück
- kind()
-
Gibt den Typ im letzten (kind, id)-Paar zurück
- parent()
-
Gibt einen Schlüssel zurück, der aus allen (kind, id)-Paaren mit Ausnahme des letzten besteht, oder
None
, wenn der Schlüssel nur ein (kind, id)-Paar hat - urlsafe()
-
Gibt eine mit base64 websicher codierte, serialisierte Version des Schlüssels zurück
Hinweis: Der URL-sichere Schlüssel wirkt verschlüsselt, was jedoch nicht der Fall ist. Er lässt sich einfach entschlüsseln, um den Typ und die ID der ursprünglichen Entität wiederherzustellen.
- to_old_key()
-
Gibt einen
Key
für die "alte" Datastore-API zurück (db
).
Instanzmethoden mit Auswirkungen auf den Datenspeicher
Diese Methoden interagieren mit dem Datenspeicher.
- get(**ctx_options)
-
Gibt die Entität für den Schlüssel zurück
Argumente
- **ctx_options
- Kontextoptionen
- get_async(**ctx_options)
-
Gibt ein
Future
zurück, dessen Ergebnis die Entität für den Schlüssel istArgumente
- **ctx_options
- Kontextoptionen
- delete(**ctx_options)
-
Löscht die Entität für den Schlüssel
Argumente
- **ctx_options
- Kontextoptionen
- delete_async(**ctx_options)
-
Löscht die Entität für den Schlüssel asynchron
Argumente
- **ctx_options
- Kontextoptionen
Klassenmethoden
- from_old_key(k)
-
Gibt einen NDB-Schlüssel von dem übergebenen
Key
der "alten" Datastore API (db
) zurückArgumente
- **ctx_options
- Kontextoptionen