ประโยชน์ของการใช้ฟิลด์ที่จำเป็น
การใช้ฟิลด์บังคับใน Pydantic มีประโยชน์หลายประการ
- การตรวจสอบความสมบูรณ์ของข้อมูล: ช่องที่ต้องกรอกช่วยให้เรามั่นใจได้ว่าโมเดลข้อมูลของเราสมบูรณ์และถูกต้อง วิธีนี้สามารถช่วยป้องกันข้อผิดพลาดในโค้ดและการประมวลผลข้อมูลของคุณได้
- การป้องกันอินพุตที่เป็นอันตราย: ช่องที่ต้องกรอกยังสามารถใช้เพื่อป้องกันไม่ให้ผู้ใช้ที่เป็นอันตรายฉีดข้อมูลที่ไม่ถูกต้องเข้าสู่ระบบของคุณ
- ทำให้โค้ดอ่านง่ายขึ้น: คุณสามารถปรับปรุงความสามารถในการอ่านและความเข้าใจโค้ดของคุณได้โดยใช้ช่องที่ต้องกรอก
วิธีกำหนดฟิลด์ที่จำเป็นใน Pydantic
ใน Pydantic มี 3 วิธีในการกำหนดช่องเป็นช่องที่ต้องกรอก มาสำรวจแต่ละรายการโดยละเอียด
การใช้คำอธิบายประกอบ
วิธีที่ง่ายที่สุดในการกำหนดฟิลด์บังคับใน Pydantic คือการใช้คำอธิบายประกอบ การใช้คำอธิบายประกอบซึ่งเป็นประเภทของข้อมูลเมตาเชิงวากยสัมพันธ์ คุณสามารถเพิ่มรายละเอียดเพิ่มเติมเกี่ยวกับตัวแปรและคุณลักษณะของคลาสได้ ใน Pydantic คำอธิบายประกอบจะถูกนำมาใช้เพื่อระบุประเภทข้อมูลที่คาดหวังของช่อง และโดยค่าเริ่มต้น ช่องที่มีคำอธิบายประกอบทั้งหมดจะถือว่าจำเป็น จนกว่าคุณจะทำให้ช่องเป็นทางเลือก
จาก ขี้อาย นำเข้า BaseModel
ระดับ บุคคล ( BaseModel ) : :
ชื่อเต็ม: STR
ความสูง: ลอย
อีเมล : : STR
ในตัวอย่างนี้ ชื่อเต็ม ส่วนสูง และอีเมลเป็นช่องที่ต้องกรอกทั้งหมด หากคุณสร้างอินสแตนซ์ของคลาส Person โดยไม่ระบุค่าสำหรับฟิลด์เหล่านี้ Pydantic จะเพิ่ม ValidationError เพื่อระบุว่าฟิลด์ที่จำเป็นหายไป
พยายาม : :
บุคคล_ข้อมูล = {
'ความสูง' : : 5.8 ,
}
บุคคล = บุคคล ( **บุคคล_ข้อมูล )
ยกเว้น ค่าข้อผิดพลาด เช่น มันคือ:
พิมพ์ ( มันคือ )
ในตัวอย่างนี้ ฟิลด์ full_name หายไป และฟิลด์ความสูงก็หายไปเช่นกัน จำเป็นต้องกรอกทั้งสองฟิลด์นี้ และ ValidationError จะให้ข้อมูลที่ชัดเจนเกี่ยวกับฟิลด์ที่ขาดหายไป
การใช้จุดไข่ปลา (...)
อีกวิธีหนึ่งในการประกาศฟิลด์ตามที่ต้องการใน Pydantic คือการใช้จุดไข่ปลา ( … ). นี่เป็นแนวทางที่ชัดเจนของ Pydantic เพื่อทำเครื่องหมายฟิลด์ตามต้องการ
จาก ขี้อาย นำเข้า BaseModel
ระดับ ผลิตภัณฑ์ ( BaseModel ) : :
ชื่อ: STR = ...
ราคา : : ลอย = ...
คำอธิบาย : : STR = ...
ในตัวอย่างนี้ ชื่อฟิลด์ ราคา และคำอธิบายทั้งหมดถูกกำหนดตามที่จำเป็นโดยใช้จุดไข่ปลา วิธีการนี้ทำให้ชัดเจนและมองเห็นได้ว่าไม่สามารถข้ามฟิลด์ใดฟิลด์หนึ่งได้เมื่อสร้างอินสแตนซ์ของคลาสผลิตภัณฑ์
พยายาม : :ผลิตภัณฑ์_ข้อมูล = {
'ชื่อ' : : 'โทรศัพท์มือถือ' ,
'คำอธิบาย' : : “สมาร์ทโฟนแรม 16Gb” ,
}
ผลิตภัณฑ์ = ผลิตภัณฑ์ ( **ข้อมูลผลิตภัณฑ์ )
ยกเว้น ค่าข้อผิดพลาด เช่น มันคือ:
พิมพ์ ( มันคือ )
ในตัวอย่างนี้ ฟิลด์ราคาหายไป และ ValidationError ระบุอย่างชัดเจนว่าฟิลด์บังคับขาดหายไป
การใช้ฟังก์ชันฟิลด์
ฟังก์ชัน Field จากโมดูล Pydantic มอบความสามารถเพิ่มเติมสำหรับการปรับแต่งการตรวจสอบความถูกต้องของฟิลด์และข้อมูลเมตา คุณสามารถใช้ฟังก์ชันฟิลด์เพื่อประกาศฟิลด์ที่จำเป็นและใช้กฎการตรวจสอบเพิ่มเติมได้
ต่อไปนี้คือวิธีที่คุณสามารถกำหนดฟิลด์ที่ต้องกรอกโดยใช้ฟังก์ชันฟิลด์:
จาก ขี้อาย นำเข้า BaseModel , สนามระดับ ที่อยู่ ( BaseModel ) : :
ถนน: STR = สนาม ( ... , คำอธิบาย = 'ที่อยู่ถนน' )
เมือง: STR = สนาม ( ... )
รหัสไปรษณีย์: STR = สนาม ( ... )
ในตัวอย่างนี้ เราใช้ฟังก์ชัน Field เพื่อกำหนดฟิลด์ที่ต้องกรอก ถนน เมือง และ zip_code พร้อมด้วยกฎการตรวจสอบและคำอธิบายเพิ่มเติม จุดไข่ปลา “…” บ่งชี้ว่าช่องเหล่านี้ต้องถูกกำหนดให้เป็นช่องที่ต้องกรอก
พยายาม : :ที่อยู่_ข้อมูล = {
'ถนน' : : '111 ถนนสายหลัก' ,
'รหัสไปรษณีย์' : : '123456'
}
ที่อยู่ = ที่อยู่ ( **ที่อยู่_ข้อมูล )
ยกเว้น ค่าข้อผิดพลาด เช่น มันคือ:
พิมพ์ ( มันคือ )
ในตัวอย่างนี้ ฟิลด์เมืองหายไป และ ValidationError ให้ข้อมูลเกี่ยวกับฟิลด์ที่จำเป็นที่ขาดหายไป
ฟิลด์ที่จำเป็นสามารถตรวจสอบได้โดยใช้ฟีเจอร์ Pydantic อื่นๆ เช่น ข้อจำกัดและประเภท ตัวอย่างเช่น คุณสามารถระบุได้ว่าฟิลด์ชื่อต้องเป็นสตริงที่มีความยาวอย่างน้อย 5 อักขระ คุณสามารถใช้ตัวตกแต่งฟิลด์เพื่อปรับแต่งลักษณะการทำงานของฟิลด์ที่จำเป็นได้ ตัวอย่างเช่น คุณสามารถระบุค่าเริ่มต้นสำหรับฟิลด์หรือข้อความที่จะแสดงหากฟิลด์ไม่ได้รับค่า
การใช้หลายวิธีในการกำหนดฟิลด์ที่ต้องการในแบบจำลอง Pydantic เดียว
คุณสามารถใช้ได้หลายวิธีในการกำหนดฟิลด์ที่ต้องกรอกภายในโมเดล Pydantic เดียว ตัวอย่างเช่น คุณสามารถใช้คำอธิบายประกอบสำหรับบางฟิลด์ จุดไข่ปลา ( … ) สำหรับรายการอื่นๆ และฟังก์ชันฟิลด์สำหรับการปรับแต่งเพิ่มเติม Pydantic ให้คุณเลือกแนวทางที่ดีที่สุดสำหรับการจัดระเบียบโค้ดและการตั้งค่าความสามารถในการอ่านของคุณ ลองพิจารณาตัวอย่างต่อไปนี้:
จาก ขี้อาย นำเข้า BaseModel , สนามระดับ พนักงาน ( BaseModel ) : :
ชื่อ: STR
แผนก: STR = …
เงินเดือน: ลอย = สนาม ( … )
ในตัวอย่างนี้ จำเป็นต้องใช้ทุกฟิลด์ เราได้ใช้วิธีการที่แตกต่างกันสามวิธีเพื่อกำหนดฟิลด์ที่จำเป็น ฟิลด์ชื่อใช้คำอธิบายประกอบ แผนกใช้จุดไข่ปลา และเงินเดือนใช้ฟังก์ชันฟิลด์
เคล็ดลับในการใช้ฟิลด์ที่จำเป็น
การปฏิบัติตามแนวทางปฏิบัติที่ดีในการกำหนดฟิลด์บังคับใน Pydantic ถือเป็นสิ่งสำคัญในการสร้างโค้ดที่ราบรื่นและบำรุงรักษาได้ เคล็ดลับต่อไปนี้จะช่วยคุณกำหนดฟิลด์บังคับใน Pydantic:
- ใช้ชื่อฟิลด์ที่ชัดเจนและเป็นคำอธิบาย : เลือกชื่อที่มีความหมายสำหรับสาขาของคุณซึ่งระบุวัตถุประสงค์อย่างชัดเจน สิ่งนี้ช่วยให้นักพัฒนารายอื่นรู้ว่าข้อมูลใดที่จำเป็นและลดโอกาสที่ฟิลด์ที่จำเป็นจะขาดหายไป
- ให้คำอธิบายข้อมูลภาคสนาม : เมื่อใช้ฟังก์ชันฟิลด์เพื่อกำหนดฟิลด์ที่ต้องกรอก ให้ระบุคำอธิบายที่อธิบายวัตถุประสงค์และรูปแบบที่คาดหวังของข้อมูล
- กลุ่มสาขาที่เกี่ยวข้อง : หากโมเดลข้อมูลของคุณมีฟิลด์จำนวนมาก ให้พิจารณาจัดกลุ่มฟิลด์ที่เกี่ยวข้องให้เป็นโครงสร้างที่ซ้อนกัน วิธีนี้จะช่วยให้โค้ดของคุณอ่านง่ายขึ้น และทำให้การจัดการฟิลด์ที่จำเป็นง่ายขึ้น
- ใช้ข้อความที่กำหนดเองสำหรับฟิลด์บังคับ: ตามค่าเริ่มต้น Pydantic จะเพิ่มข้อยกเว้น ValueError หากไม่ได้ระบุค่าในฟิลด์ที่จำเป็น คุณปรับแต่งข้อความแสดงข้อผิดพลาดได้โดยระบุอาร์กิวเมนต์ของข้อความให้กับเครื่องมือตกแต่งช่อง
บทสรุป
ตามค่าเริ่มต้น Pydantic จะทำให้ฟิลด์ต่างๆ เป็นไปตามที่ต้องการ อย่างไรก็ตาม คุณสามารถกำหนดฟิลด์เป็นฟิลด์บังคับได้อย่างชัดเจน การประกาศฟิลด์ตามที่จำเป็นทำให้มั่นใจได้ว่าโมเดลข้อมูลของคุณถูกต้อง ครบถ้วน และสอดคล้องกับความต้องการของคุณ ในโพสต์นี้ เราได้กล่าวถึงวิธีการที่แตกต่างกันสามวิธีในการกำหนดฟิลด์บังคับใน Pydantic ได้แก่ คำอธิบายประกอบ จุดไข่ปลา (...) และฟังก์ชันฟิลด์ นอกจากนี้ เรายังดูแนวทางปฏิบัติที่แนะนำบางประการสำหรับการใช้ฟิลด์บังคับ เพื่อให้คุณสามารถระบุฟิลด์ในแบบจำลองข้อมูลของคุณได้อย่างมีประสิทธิภาพ