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
eflat
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