כיצד להגדיר שדות נדרשים ב- Pydantic

Kyzd Lhgdyr Sdwt Ndrsym B Pydantic



שדה חובה הוא שדה שחייב להיות קיים במודל הנתונים. שדות אלו חיוניים ולא ניתן להשאירם ריקים, מכיוון שהם נחוצים כדי לתפקד כראוי או להשלים תהליך. אם לא ניתן ערך לשדה חובה, Pydantic תעלה חריג ValueError. ניתן להגדיר שדות כשדות חובה במגוון דרכים. עם זאת, Pydantic מגדירה את כל שדות מודל הנתונים 'נדרשים' כברירת מחדל. מאמר זה ידגים כיצד להגדיר שדות נדרשים ב- Pydantic. כמו כן, נדון בכמה טיפים טובים לשימוש בשדות הנדרשים.

יתרונות השימוש בשדות נדרשים

ישנם מספר יתרונות לשימוש בשדות הנדרשים ב- Pydantic.

  • הבטחת שלמות הנתונים: שדות נדרשים עוזרים לנו להבטיח שדגמי הנתונים שלנו מלאים ותקפים. זה יכול לעזור למנוע שגיאות בקוד ובעיבוד הנתונים שלך.
  • מניעת קלט זדוני: ניתן להשתמש בשדות נדרשים גם כדי למנוע ממשתמשים זדוניים להחדיר נתונים לא חוקיים למערכת שלך.
  • הפיכת הקוד לקריאה יותר: תוכל לשפר את הקריאה וגם את ההבנה של הקוד שלך על ידי שימוש בשדות הנדרשים.

כיצד להגדיר שדות נדרשים ב- Pydantic

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







שימוש בהערות

הדרך הפשוטה ביותר להגדיר שדה נדרש ב- Pydantic היא באמצעות הערות. באמצעות הערות, סוג של מטא נתונים תחביריים, תוכל להוסיף פרטים נוספים על משתנים ותכונות של מחלקות. ב- Pydantic משתמשים בהערות כדי לציין את סוג הנתונים הצפוי של שדה, וכברירת מחדל, כל השדות המוערים נחשבים כנדרשים עד שתהפוך שדה או שדות לאופציונליים.



מ פידנטי יְבוּא דגם בסיס

מעמד אדם ( דגם בסיס ) :

שם מלא: str

גוֹבַה: לָצוּף

אימייל : str

בדוגמה זו, שם_מלא, גובה ואימייל הם כולם שדות חובה. אם תיצור מופע של המחלקה Person מבלי לספק ערכים עבור שדות אלה, Pydantic תעלה ValidationError המציין שהשדות הנדרשים חסרים.



לְנַסוֹת :

person_data = {

'גוֹבַה' : 5.8 ,

}

אדם = אדם ( **נתוני_אדם )

מלבד ValueError כפי ש זה:

הדפס ( זה )





בדוגמה זו, השדה מלא_שם חסר, וגם שדה הגובה חסר. שני השדות הללו נדרשים, וה- ValidationError מספק מידע ברור לגבי השדות החסרים.

שימוש באליפסיס (...)

דרך נוספת להכריז על שדה כנדרש ב- Pydantic היא באמצעות האליפסיס ( ). זוהי גישה מפורשת שמספקת Pydantic, לסמן שדה כנדרש.



מ פידנטי יְבוּא דגם בסיס

מעמד מוצר ( דגם בסיס ) :

שֵׁם: str = ...

מחיר : לָצוּף = ...

תיאור : str = ...

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

לְנַסוֹת :

נתוני מוצר = {

'שֵׁם' : 'טלפון נייד' ,

'תיאור' : 'טלפון חכם עם 16Gb RAM' ,

}

מוצר = מוצר ( **נתוני מוצר )

מלבד ValueError כפי ש זה:

הדפס ( זה )


בדוגמה זו, שדה המחיר חסר, וה- ValidationError מציין בבירור את השדה הנדרש החסר.

שימוש בפונקציית השדה

פונקציית השדה מהמודול Pydantic מספקת יכולות נוספות להתאמה אישית של אימות שדה ומטא נתונים. אתה יכול להשתמש בפונקציה Field כדי להצהיר על שדות נדרשים ולהחיל כללי אימות נוספים.

כך תוכל להגדיר שדות נדרשים באמצעות פונקציית השדה:

מ פידנטי יְבוּא דגם בסיס , שדה

מעמד כתובת ( דגם בסיס ) :

רְחוֹב: str = שדה ( ... , תיאור = 'כתובת רחוב' )

עִיר: str = שדה ( ... )

מיקוד: str = שדה ( ... )

בדוגמה זו, אנו משתמשים בפונקציה Field כדי להגדיר שדות נדרשים street, city ו-zip_code, יחד עם כללי אימות ותיאורים נוספים. האליפסיס '...' מציין שיש להגדיר שדות אלה כשדות חובה.

לְנַסוֹת :

כתובת_נתוני = {

'רְחוֹב' : 'רחוב ראשי 111' ,

'מיקוד' : '123456'

}

כתובת = כתובת ( **נתוני_כתובת )

מלבד ValueError כפי ש זה:

הדפס ( זה )

בדוגמה זו, שדה העיר חסר, וה- ValidationError מספק מידע על השדה הנדרש החסר.

ניתן לאמת שדות נדרשים באמצעות תכונות Pydantic אחרות, כגון אילוצים וסוגים. לדוגמה, תוכל לציין ששדה שם חייב להיות מחרוזת בת 5 תווים לפחות. אתה יכול להשתמש בעיצוב השדות כדי להתאים אישית את ההתנהגות של שדות נדרשים. לדוגמה, תוכל לציין ערך ברירת מחדל עבור השדה או הודעה שתוצג אם השדה לא יקבל ערך.

שימוש במספר שיטות להגדרת שדות נדרשים במודל פידנטי יחיד

אתה יכול להשתמש במספר שיטות להגדרת שדות נדרשים בתוך מודל Pydantic יחיד. לדוגמה, אתה יכול להשתמש בהערות עבור שדות מסוימים, אליפסיס ( ) עבור אחרים, ואת הפונקציה Field עבור התאמה אישית נוספת. Pydantic מאפשרת לך לבחור את הגישה הטובה ביותר עבור ארגון הקוד והעדפות הקריאה שלך. שקול את הדוגמה הבאה:

מ פידנטי יְבוּא דגם בסיס , שדה

מעמד עוֹבֵד ( דגם בסיס ) :

שֵׁם: str

מַחלָקָה: str =

שכר: לָצוּף = שדה ( )

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

טיפים לשימוש בשדות נדרשים

ביצוע מספר שיטות עבודה טובות בעת הגדרת השדות הנדרשים ב- Pydantic חיוני ליצירת קוד חלק וניתן לתחזוקה. הטיפים הבאים יעזרו לך להגדיר את השדות הנדרשים ב- Pydantic:

  1. השתמש בשמות שדות ברורים ותיאוריים : בחר שמות משמעותיים לשדות שלך שמציינים בבירור את מטרתם. זה עוזר למפתחים אחרים לדעת אילו נתונים דרושים ומקטין את הסיכוי להחמיץ שדות נדרשים.
  2. ספק תיאורי שדות אינפורמטיביים : בעת שימוש בפונקציה Field להגדרת שדות נדרשים, ספק תיאורים תיאוריים המסבירים את המטרה והפורמט הצפוי של הנתונים.
  3. שדות קשורים לקבוצה : אם למודל הנתונים שלך יש מספר רב של שדות, שקול לקבץ שדות קשורים למבנים מקוננים. זה יכול לעזור לקוד שלך להיות קריא יותר ולהקל על ניהול השדות הנדרשים.
  4. השתמש בהודעות מותאמות אישית עבור שדות חובה: כברירת מחדל, Pydantic תעלה חריג ValueError אם לשדה חובה לא ניתן ערך. תוכל להתאים אישית את הודעת השגיאה על ידי ציון טיעון ההודעה ל-Field Decorator.

סיכום

Pydantic, כברירת מחדל, עושה את השדות כנדרש. עם זאת, אתה יכול להגדיר במפורש את השדה כשדות חובה. על ידי הצהרת שדות כנדרש, אתה מבטיח שמודלים הנתונים שלך מדויקים, מלאים ומתאימים לדרישות שלך. בפוסט זה, כיסינו שלוש שיטות שונות להגדרת השדות הנדרשים ב- Pydantic, כלומר, הערות, האליפסיס (...) ופונקציית השדה. בנוסף, בדקנו כמה שיטות עבודה מומלצות לשימוש בשדות חובה כדי שתוכל לציין ביעילות שדות במודל הנתונים שלך.