NDB Key Class

מופע של המחלקה Key מייצג מפתח Datastore שלא ניתן לשינוי.

בדף הזה מופיע תיעוד של הפניות ל-API. לסקירה כללית, אפשר לעיין במאמר NDB Entities and Keys.

מבוא

מפתח הוא מפתח Datastore שלא ניתן לשינוי. בדרך כלל, אפליקציות משתמשות בהם כדי להתייחס לישויות. לכל ישות שאוחסנה יש מפתח. כדי לקבל את המפתח של ישות, משתמשים במאפיין key של המודל. כדי לאחזר ישות מהמפתח שלה, מפעילים את השיטה get() של האובייקט Key.

המפתחות תומכים בהשוואות, לדוגמה key1 == key2 או key1 < key2. האופרטורים האלה משווים את מזהה האפליקציה, מרחב השמות ואת 'נתיב האב' המלא. הם משתמשים באותו סדר כמו ב-Datastore עבור שאילתות כשממיינים לפי מאפיין מפתח או לפי מפתח.

repr(key) או ‫str(key) מחזירה ייצוג מחרוזת שדומה לצורה הקצרה ביותר של בנאי, בלי האפליקציה ומרחב השמות אלא אם הם שונים מערך ברירת המחדל.

hash(key). לכן, אפשר לאחסן מפתחות בטבלת גיבוב.

יצרנים

כדי לאפשר גמישות ונוחות, יש תמיכה בכמה חתימות של בנאים.

class Key(kind1, id1, kind2, id2, ...)
class Key(pairs=[(kind1, id1), (kind2, id2), ...])
class Key(flat=[kind1, id1, kind2, id2, ...])
class Key(urlsafe=string)

הארגומנטים המיקומיים kind1, id1, kind2, id2... מופיעים בסדר של 'הורה' (ancestor). (זוהי קיצור דרך ל-flat=[kind1, id1, kind2, id2]) ההורים מופיעים לפני הילדים.

בנוסף, אפשר להעביר עוד מפתח באמצעות parent=key בפורמטים של הארגומנטים המיקומיים, pairs ו-flat. הזוגות (kind, id) של מפתח האב מוכנסים לפני הזוגות (kind, id) שמועברים באופן מפורש.

פרמטר מילת המפתח urlsafe משתמש בהפניה מסוג websafe-base64-encoded serialized, אבל הכי טוב להתייחס אליו פשוט כמחרוזת ייחודית אטומה.

ארגומנטים נוספים של מילות מפתח ליצרן:

אפליקציה
specify the application id (a string)
namespace
מציינים את מרחב השמות (מחרוזת)

שיטות של מופעים שלא משפיעות על Datastore

השיטות הבאות ניגשות לתוכן של מפתח. הן לא מבצעות פעילות קלט/פלט במאגר הנתונים.

pairs()

מחזירה טאפל של זוגות (סוג, מזהה).

flat()

מחזירה טאפל של ערכי סוג ומזהה שטוחים (kind1, id1, kind2, id2, ...).

app()

מחזירה את מזהה האפליקציה.

id()

הפונקציה מחזירה את המחרוזת או את מזהה המספר השלם בזוג האחרון (סוג, מזהה), או None אם המפתח לא שלם.

string_id()

הפונקציה מחזירה את מזהה המחרוזת בזוג האחרון (kind, id), או None אם למפתח יש מזהה של מספר שלם או שהוא לא שלם.

integer_id()

הפונקציה מחזירה את מזהה המספר השלם בזוג האחרון (kind, id), או None אם למפתח יש מזהה מחרוזת או שהוא לא שלם.

namespace()

מחזירה את מרחב השמות.

kind()

מחזירה את הסוג בזוג האחרון (סוג, מזהה).

parent()

הפונקציה מחזירה מפתח שנבנה מכל הזוגות (סוג, מזהה) מלבד האחרון (או None אם למפתח יש רק זוג אחד (סוג, מזהה)).

urlsafe()

הפונקציה מחזירה גרסה סדרתית של המפתח בקידוד Base64 שמתאים לשימוש באינטרנט.

הערה: המחרוזת שמתאימה לשימוש בכתובת URL נראית מוצפנת, אבל היא לא מוצפנת! אפשר לפענח אותו בקלות כדי לשחזר את סוג הישות המקורית ואת המזהה שלה.

to_old_key()

מחזירה Key עבור Datastore API "ישן" (db).

שיטות של מופעים שמשפיעות על Datastore

השיטות האלה פועלות באינטראקציה עם Datastore.

get(**ctx_options)

מחזירה את הישות של המפתח.

ארגומנטים

**ctx_options
אפשרויות הקשר
get_async(**ctx_options)

מחזירה Future שהתוצאה הסופית שלו היא הישות של המפתח.

ארגומנטים

**ctx_options
אפשרויות הקשר
delete(**ctx_options)

מוחקים את הישות של המפתח.

ארגומנטים

**ctx_options
אפשרויות הקשר
delete_async(**ctx_options)

מחיקה אסינכרונית של הישות עבור המפתח.

ארגומנטים

**ctx_options
אפשרויות הקשר

Class Methods

from_old_key(k)

מחזירה מפתח NDB מ-Datastore API 'ישן' שהועבר (db) Key.

ארגומנטים

**ctx_options
אפשרויות הקשר