Classe di chiave NDB

Un'istanza della classe Key rappresenta una chiave Datastore immutabile.

In questa pagina è disponibile la documentazione di riferimento dell'API. Per una panoramica, consulta Entità e chiavi NDB.

Introduzione

Una chiave è una chiave Datastore immutabile. Le applicazioni in genere le utilizzano per fare riferimento a entità. Qualsiasi entità archiviata ha una chiave. Per ottenere la chiave di un'entità, utilizza la proprietà key del modello. Per recuperare un'entità dalla relativa chiave, chiama il metodo get() dell'oggetto Key.

Le chiavi supportano i confronti, ad esempio key1 == key2 o key1 < key2. Questi operatori confrontano l'ID applicazione, lo spazio dei nomi e il "percorso predecessore" completo. Usano lo stesso ordinamento utilizzato da Datastore per le query quando vengono ordinati in base a una proprietà della chiave o alla chiave.

repr(key) o str(key) restituisce una rappresentazione stringa simile alla forma costruttore più breve, omettendo l'app e lo spazio dei nomi, a meno che non siano diversi dal valore predefinito.

hash(key) funziona. Puoi quindi archiviare le chiavi in una tabella hash.

Costruttori

Per maggiore flessibilità e convenienza, sono supportate più firme del costruttore.

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

Gli argomenti posizionali kind1, id1, kind2, id2... sono in ordine "predecessore". (Questa è una scorciatoia per flat=[kind1, id1, kind2, id2]) I genitori vengono prima dei bambini.

Gli argomenti posizionali, i moduli del costruttore pairs e flat possono essere trasmessi anche in un'altra chiave utilizzando parent=key. Le coppie (kind, id) della chiave padre vengono inserite prima delle coppie (kind, id) passate in modo esplicito.

Il parametro della parola chiave urlsafe utilizza un riferimento serializzato codificato come websafe-base64, ma è meglio pensarlo come una stringa univoca opaca.

Ulteriori argomenti delle parole chiave del costruttore:

app
Specifica l'ID applicazione (una stringa)
spazio dei nomi
specifica lo spazio dei nomi (una stringa)

Metodi di istanza che non interessano il datastore

I seguenti metodi accedono ai contenuti di una chiave. Non svolgono alcuna attività di Datastore I/O.

coppie()

Restituisce una tupla di coppie (kind, id).

flat()

Restituisce una tupla di valori di tipo e ID appiattiti (kind1, id1, type2, id2, ...).

app()

Restituisce l'ID applicazione.

id()

Restituisce la stringa o l'ID intero nell'ultima coppia (kind, id) oppure None se la chiave è incompleta.

string_id()

Restituisce l'ID stringa nell'ultima coppia (kind, id) o None se la chiave ha un ID intero o è incompleta.

integer_id()

Restituisce l'ID intero nell'ultima coppia (kind, id) o None se la chiave ha un ID stringa o è incompleta.

spazio dei nomi()

Restituisce lo spazio dei nomi.

kind()

Restituisce il tipo nell'ultima coppia (kind, id).

parent()

Restituisce una chiave creata da tutte le coppie tranne l'ultima (kind, id) (o None se la chiave ha una sola coppia (kind, id).

urlsafe()

Restituisce una versione serializzata della chiave codificata in websafe-base64.

Nota:la stringa sicura per l'URL sembra crittografica, ma non è criptata. Può essere facilmente decodificato per recuperare il tipo e l'identificatore dell'entità originale.

to_old_key()

Restituisce un Key per la "precedente" API Datastore (db).

Metodi di istanza che interessano il datastore

Questi metodi interagiscono con Datastore.

get(**ctx_options)

Restituisce l'entità per la chiave.

Argomenti

**ctx_options
Opzioni di contesto
get_async(**ctx_options)

Restituisce un Future il cui risultato finale è l'entità per la chiave.

Argomenti

**ctx_options
Opzioni di contesto
delete(**ctx_options)

Elimina l'entità per la chiave.

Argomenti

**ctx_options
Opzioni di contesto
delete_async(**ctx_options)

Elimina in modo asincrono l'entità per la chiave.

Argomenti

**ctx_options
Opzioni di contesto

Metodi della classe

from_old_key(k)

Restituisce una chiave NDB dall'API Datastore "precedente" passata (db) Key.

Argomenti

**ctx_options
Opzioni di contesto