Instance class Key
mewakili kunci Datastore yang tidak dapat diubah.
Halaman ini memiliki dokumentasi referensi API. Untuk ringkasan, lihat Entity dan Kunci NDB.
Pengantar
Kunci adalah kunci Datastore yang tidak dapat diubah. Aplikasi biasa menggunakannya untuk merujuk ke entity. Setiap entity yang telah disimpan memiliki kunci. Untuk mendapatkan kunci entity, gunakan properti kunci model.
Untuk mengambil entity dari kuncinya, panggil metode get() objek Key
.
Kunci mendukung perbandingan, misalnya
key1 == key2
atau
key1 < key2
.
Operator ini membandingkan ID aplikasi, namespace, dan "jalur ancestor" lengkap. Keduanya menggunakan pengurutan yang sama seperti yang digunakan Datastore untuk kueri saat mengurutkan berdasarkan properti kunci atau kunci.
repr(key)
atau
str(key)
menampilkan
representasi string yang menyerupai
bentuk konstruktor terpendek, yang menghilangkan aplikasi dan namespace
kecuali jika berbeda dari nilai default.
hash(key)
berfungsi. Dengan demikian, Anda dapat menyimpan kunci dalam tabel hash.
Konstruktor
Untuk fleksibilitas dan kemudahan, beberapa tanda tangan konstruktor didukung.
- Kunci class(kind1, id1, kind2, id2, ...)
- Kunci class(pairs=[(kind1, id1), (kind2, id2), ...])
- Kunci class(flat=[kind1, id1, kind2, id2, ...])
- Kunci class(urlsafe=string)
-
Argumen posisi kind1, id1, kind2, id2... berada dalam urutan "ancestor". (Ini adalah pintasan untuk
flat=[kind1, id1, kind2, id2]
) Induk muncul sebelum turunan.Argumen posisi,
pairs
, dan bentuk konstruktorflat
juga dapat meneruskan kunci lain menggunakan parent=key. Pasangan (kind, id) kunci induk disisipkan sebelum pasangan (kind, id) diteruskan secara eksplisit.Parameter kata kunci
urlsafe
menggunakan referensi serial berenkode websafe-base64, tetapi sebaiknya anggap parameter ini hanya sebagai string unik yang buram.Argumen kata kunci konstruktor tambahan:
- app
- menentukan ID aplikasi (string)
- namespace
- menentukan namespace (string)
Metode Instance yang Tidak Memengaruhi Datastore
Metode berikut mengakses konten kunci. Keduanya tidak terlibat dalam aktivitas Datastore I/O apa pun.
- pairs()
-
Menampilkan tuple pasangan (kind, id).
- flat()
-
Menampilkan tuple nilai kind dan id yang diratakan (kind1, id1, kind2, id2, ...).
- app()
-
Menampilkan ID aplikasi.
- id()
-
Menampilkan string atau ID bilangan bulat dalam pasangan (kind, id) terakhir, atau
None
jika kuncinya tidak lengkap. - string_id()
-
Menampilkan ID string dalam pasangan terakhir (kind, id), atau
None
jika kunci memiliki ID bilangan bulat atau tidak lengkap. - integer_id()
-
Menampilkan ID bilangan bulat dalam pasangan terakhir (kind, id), atau
None
jika kunci memiliki ID string atau tidak lengkap. - namespace()
-
Menampilkan namespace.
- kind()
-
Menampilkan kind dalam pasangan (kind, id) terakhir.
- parent()
-
Menampilkan Kunci yang dibuat dari semua kecuali pasangan (kind, id) terakhir (atau
None
jika kunci hanya memiliki satu pasangan (kind, id). - urlsafe()
-
Menampilkan versi kunci serial berenkode websafe-base64.
Catatan: String aman URL tampak samar, tetapi tidak dienkripsi. Library ini dapat dengan mudah di-dekode untuk memulihkan kind dan id entitas asli.
- to_old_key()
-
Menampilkan
Key
untuk Datastore API "lama" (db
).
Metode Instance yang Memengaruhi Datastore
Metode ini berinteraksi dengan Datastore.
- get(**ctx_options)
-
Menampilkan entity Kunci.
Argumen
- **ctx_options
- Opsi konteks
- get_async(**ctx_options)
-
Menampilkan
Future
yang hasil akhirnya adalah entity Kunci tersebut.Argumen
- **ctx_options
- Opsi konteks
- delete(**ctx_options)
-
Menghapus entity Kunci.
Argumen
- **ctx_options
- Opsi konteks
- delete_async(**ctx_options)
-
Menghapus entity Kunci secara asinkron.
Argumen
- **ctx_options
- Opsi konteks
Metode Class
- from_old_key(k)
-
Menampilkan kunci NDB dari yang diteruskan dalam Datastore API "lama" (
db
)Key
.Argumen
- **ctx_options
- Opsi konteks