Un'istanza della classe Key
rappresenta una chiave immutabile di Datastore.
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 dell'antenato" completo. Utilizzano lo stesso ordinamento utilizzato da Datastore per le query quando l'ordinamento avviene in base a una proprietà chiave o a una chiave.
repr(key)
o
str(key)
restituisce
una rappresentazione di 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)
funziona. In questo modo, puoi memorizzare le chiavi in
una tabella hash.
Costruttori
Per flessibilità e praticità, sono supportate più firme del costruttore.
- 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 "antenato". (Questa è una scorciatoia per
flat=[kind1, id1, kind2, id2]
) I genitori vengono prima dei figli.I moduli del costruttore con argomenti posizionali,
pairs
eflat
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 della parola chiave
urlsafe
utilizza un riferimento serializzato codificato in base64 per il web ma è meglio considerarlo solo una stringa opaca univoca.Argomenti aggiuntivi della parola 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 costruita da tutte le coppie (kind, id) tranne l'ultima (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 gli 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 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 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 di classe
- from_old_key(k)
-
Restituisce una chiave NDB dall'API Datastore "vecchia" passata (
db
)Key
.Argomenti
- **ctx_options
- Opzioni contestuali