Class Kunci NDB

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 konstruktor flat 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