Classe di chiavi NDB

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

Questa pagina contiene 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 li utilizzano per fare riferimento alle entità. Qualsiasi entità memorizzata 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 degli antenati" completo. Utilizzano lo stesso ordinamento di Datastore per le query quando l'ordinamento viene eseguito in base a una proprietà chiave o alla chiave.

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

hash(key). Pertanto, puoi memorizzare le chiavi in una tabella hash.

Costruttori

Per flessibilità e praticità, sono supportate più firme di costruttori.

class Key(kind1, id1, kind2, id2, ...)
class Key(pairs=[(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 "ancestor". (Questa è una scorciatoia per flat=[kind1, id1, kind2, id2]) I genitori vengono prima dei figli.

I moduli del costruttore positional-arguments, pairs e flat possono inoltre passare un'altra chiave utilizzando parent=key. Le coppie (kind, id) della chiave principale vengono inserite prima delle coppie (kind, id) passate in modo esplicito.

Il parametro della parola chiave urlsafe utilizza un riferimento serializzato con codifica websafe-base64 ma è meglio considerarlo semplicemente come una stringa univoca opaca.

Argomenti delle parole chiave del costruttore aggiuntivi:

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

Metodi di istanza che non influiscono sul datastore

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

pairs()

Restituisce una tupla di coppie (tipo, ID).

flat()

Restituisce una tupla di valori di tipo e ID appiattiti (tipo1, ID1, tipo2, ID2, ...).

app()

Restituisce l'ID applicazione.

id()

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

string_id()

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

integer_id()

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

namespace()

Restituisce lo spazio dei nomi.

kind()

Restituisce il tipo nell'ultima coppia (tipo, ID).

parent()

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

urlsafe()

Restituisce una versione serializzata della chiave con codifica Base64 sicura per il web.

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

to_old_key()

Restituisce un Key per l'API Datastore "vecchia" (db).

Metodi di istanza che influiscono sul datastore

Questi metodi interagiscono con Datastore.

get(**ctx_options)

Restituisce l'entità per la chiave.

Argomenti

**ctx_options
Opzioni contestuali
get_async(**ctx_options)

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

Argomenti

**ctx_options
Opzioni contestuali
delete(**ctx_options)

Elimina l'entità per la chiave.

Argomenti

**ctx_options
Opzioni contestuali
delete_async(**ctx_options)

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

Argomenti

**ctx_options
Opzioni contestuali

Metodi della classe

from_old_key(k)

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

Argomenti

**ctx_options
Opzioni contestuali