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