Classe chiave NDB

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

Questa pagina ha la documentazione di riferimento dell'API. Per una panoramica, consulta la sezione Entità e chiavi NDB.

Introduzione

Una chiave è una chiave Datastore immutabile. Normalmente le applicazioni li utilizzano per fare riferimento alle entità. Ogni 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". Utilizzano lo stesso ordine utilizzato da Datastore per le query quando vengono ordinati in base a una proprietà chiave o a chiave.

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

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

Costruttori

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

class Chiave(kind1, id1, kind2, id2, ...)
class Chiave(coppie=[(kind1, id1), (kind2, id2), ...])
class Chiave(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 figli.

I moduli del costruttore degli argomenti posizionali, pairs e flat possono anche passare in un'altra chiave utilizzando parent=key. Le coppie (kind, id) della chiave padre vengono inserite prima delle coppie (kind, id) passate esplicitamente.

Il parametro di parola chiave urlsafe utilizza un riferimento serializzato codificato in websafe-base64, ma è preferibile considerarlo come una stringa univoca opaca.

Altri argomenti della parola 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 I/O Datastore.

pairs()

Restituisce una tupla di coppie (kind, id).

flat()

Restituisce una tupla di tipo appiattito e valori id (kind1, id1, kind2, id2, ...).

app()

Restituisce l'ID dell'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) oppure None se la chiave ha un ID numero intero o è incompleta.

integer_id()

Restituisce l'ID intero nell'ultima coppia (kind, id) oppure 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 websafe-base64.

Nota: la stringa sicura per l'URL sembra criptica, ma non è criptata. Può essere facilmente decodificato 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 interessano il datastore

Questi metodi interagiscono con Datastore.

get(**ctx_options)

Restituisce l'entità della chiave.

Argomenti

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

Restituisce un valore Future il cui risultato finale è l'entità della chiave.

Argomenti

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

Elimina l'entità della chiave.

Argomenti

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

Elimina in modo asincrono l'entità della chiave.

Argomenti

**ctx_options
Opzioni di contesto

Metodi delle classi

from_old_key(k)

Restituisce una chiave NDB dalla precedente API Datastore (db) Key.

Argomenti

**ctx_options
Opzioni di contesto