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,
pairseflatpossono 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
urlsafeutilizza 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
Nonese la chiave è incompleta. - string_id()
-
Restituisce l'ID stringa nell'ultima coppia (tipo, ID), o
Nonese la chiave ha un ID intero o è incompleta. - integer_id()
-
Restituisce l'ID intero nell'ultima coppia (tipo, ID), o
Nonese 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
Nonese 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
Keyper 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
Futureil 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