מופע של המחלקה 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
- אפשרויות הקשר