NDB-Klasse "Key"

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. in der Form 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) und str(key) geben eine Stringdarstellung zurück, die der kürzesten Konstruktorschreibweise ähnelt. Die Anwendung und der Namespace werden dabei weggelassen, sofern sie nicht vom Standardwert abweichen.

Da 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.

class Key(kind1, id1, kind2, id2, ...)
class Key(pairs=[(kind1, id1), (kind2, id2), ...])
class Key(flat=[kind1, id1, kind2, id2, ...])
class Key(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 flat-Konstruktorschreibweisen können mit parent=key einen weiteren Schlüssel übergeben. Die (kind, id)-Paare des übergeordneten Schlüssels werden vor den explizit übergebenen (kind, id)-Paaren eingefügt.

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 den 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 (db) zurück

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-Objekt zurück, dessen Ergebnis die Entität für diesen Schlüssel ist

Argumente

**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 des übergebenen Key der "alten" Datastore API (db) zurück

Argumente

**ctx_options
Kontextoptionen