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... מופיעים בסדר 'ישות אב'. (זוהי קיצור דרך ל-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

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

pairs()

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

flat()

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

app()

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

id()

הפונקציה מחזירה את המחרוזת או את מזהה המספר השלם בזוג האחרון (kind, 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
אפשרויות הקשר