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