Classe di chiave NDB

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

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 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 dell'antenato" completo. Usano lo stesso ordinamento utilizzato da Datastore per le query durante l'ordinamento per proprietà della chiave o per chiave.

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

hash(key) funziona. Di conseguenza, puoi archiviare le chiavi una tabella hash.

Costruttori

Per flessibilità e praticità, 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 "predecessore" ordine. Questa è una scorciatoia per flat=[kind1, id1, kind2, id2]) I genitori vengono prima dei bambini.

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

Il parametro parola chiave urlsafe utilizza un protocollo serializzato con codifica Websafe-base64 riferimento ma è meglio pensarla come un aspetto unico stringa.

Ulteriori argomenti delle parole chiave del costruttore:

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

Metodi istanza che non influiscono sul datastore

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

pairs()

Restituisce una tupla di coppie (kind, id).

flat()

Restituisce una tupla di valori di tipo e ID appiattiti (kind1, id1, kind2, 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.

namespace()

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 con codifica sicura per il web e Base64.

Nota: La stringa sicura per l'URL sembra crittografica, ma non è crittografata. Può essere facilmente decodificato per recuperare il tipo e identificativo dell'utente.

to_old_key()

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

Metodi istanza che influiscono su 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 contestuali
delete_async(**ctx_options)

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

Argomenti

**ctx_options
Opzioni contestuali

Metodi di classe

from_old_key(k)

Restituisce una chiave NDB dal valore passato nel campo "precedente" API Datastore (db) Key.

Argomenti

**ctx_options
Opzioni contestuali