โหลดและตรวจสอบข้อมูลนำเข้า
แปลงข้อมูลคำขอกลับเป็นออบเจ็กต์พร้อมกฎตรวจสอบ
โหลดและตรวจสอบข้อมูลนำเข้า เป็นบทเรียน Flask Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Flask Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
ความหมายของการโหลด
ในทิศทางกลับกัน การเปลี่ยน JSON ขาเข้าให้เป็นข้อมูล Python ที่เชื่อถือได้เรียกว่า การโหลด สคีมาจะทั้งแยกวิเคราะห์และตรวจสอบข้อมูลที่ส่งเข้ามา
เรียกใช้ load
ส่งพจนานุกรมคำขอให้เมธอด load ของสคีมา เมธอดนี้จะตรวจสอบทุกฟิลด์และคืนค่าข้อมูลที่สะอาด หากมีสิ่งผิดพลาดก็จะแจ้งข้อผิดพลาด
data = user_schema.load(request.get_json())Required ก็คือต้องมี
หากฟิลด์ที่กำหนดเป็น required ไม่มีอยู่ load จะปฏิเสธข้อมูลที่ส่งมา คุณจะไม่เข้าสู่ตรรกะทางธุรกิจด้วยข้อมูลขาเข้าที่มีไม่ครบ
บังคับใช้ชนิดข้อมูล
หากส่งสตริงในจุดที่คาดว่าจะเป็น Int, load จะปฏิเสธค่านั้น ชนิดข้อมูลของฟิลด์จึงกลายเป็นหลักประกัน ไม่ใช่เพียงเอกสารประกอบ
ดักจับ ValidationError
เมื่อข้อมูลขาเข้าไม่ผ่าน Marshmallow จะส่ง ValidationError ออกมา ครอบ load ไว้ใน try-except เพื่อให้คุณตอบกลับด้วย 400 ที่อธิบายได้ชัดเจน
from marshmallow import ValidationErrorอ่านข้อความแสดงข้อผิดพลาด
ข้อยกเว้นจะมีพจนานุกรม messages ที่จัดหมวดตามฟิลด์ ส่งค่านี้กลับเป็น JSON เพื่อให้ไคลเอ็นต์ทราบแน่ชัดว่าอินพุตใดไม่ถูกต้องและเพราะเหตุใด
return jsonify(err.messages), 400เพิ่มตัวตรวจสอบฟิลด์
ตัวช่วย validate ที่มีมาให้ช่วยเพิ่มความเข้มงวดของกฎ เช่น กำหนดความยาวขั้นต่ำหรือช่วงของค่า โดยไม่ต้องเขียนการตรวจสอบเอง
name = fields.Str(validate=validate.Length(min=2))ฟิลด์ load_only
รหัสผ่านควรยอมรับเมื่อเป็นข้อมูลขาเข้า แต่ไม่ควรส่งกลับ ให้กำหนดเป็น load_only เพื่อให้ load อ่านค่าได้ ขณะที่ dump จะไม่นำค่าออกไป
password = fields.Str(load_only=True)ปฏิเสธคีย์ที่ไม่รู้จัก
โดยค่าเริ่มต้น คีย์เพิ่มเติมในข้อมูลที่ส่งเข้ามาจะทำให้เกิดข้อผิดพลาด ความ เข้มงวดนี้ป้องกันไม่ให้ไคลเอ็นต์แอบส่งฟิลด์ที่คุณไม่เคยตั้งใจจะยอมรับ
จากข้อมูลสะอาดสู่แบบจำลอง
เมื่อ load สำเร็จ คุณจะมีข้อมูลที่ผ่านการตรวจสอบแล้ว ใช้ข้อมูลนี้สร้างแบบจำลองใหม่ โดยมักใช้การ กระจายอาร์กิวเมนต์เข้าไปในตัวสร้างโดยตรง
user = User(**data)ครอบคลุมทั้งสองทิศทาง
ตอนนี้สคีมาเดียวสามารถถ่ายวัตถุออกและโหลดข้อมูลที่ส่งเข้ามาได้ ปลายทางของคุณจึงใช้ ข้อตกลงเดียวที่เชื่อถือได้สำหรับทรัพยากรทั้งหมด
ตรวจสอบอย่างรวดเร็ว
ข้อมูลที่ส่งเข้ามาขาดฟิลด์ที่จำเป็น
สรุป
ใช้ load เพื่อตรวจสอบและแยกวิเคราะห์ JSON ขาเข้า ดักจับ ValidationError เพื่อส่ง 400 ที่สะอาด และเพิ่มตัวตรวจสอบกับ load_only เพื่อให้ข้อมูลขาเข้าปลอดภัยและรองรับกรณีต่าง ๆ ได้ดี
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “โหลดและตรวจสอบข้อมูลนำเข้า” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โหลดและตรวจสอบข้อมูลนำเข้า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flask Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โหลดและตรวจสอบข้อมูลนำเข้า”
แปลงข้อมูลคำขอกลับเป็นออบเจ็กต์พร้อมกฎตรวจสอบ คุณปฏิบัติ Flask Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flask Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flask Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “โหลดและตรวจสอบข้อมูลนำเข้า” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Flask Academy นี้ได้ไหม
ได้ บทเรียน Flask Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใด JSON ที่สร้างด้วยมือจึงล้มเหลว
- กำหนดแบบแผนสำหรับโมเดล
- แปลงออบเจ็กต์เป็น JSON
- โหลดและตรวจสอบข้อมูลนำเข้า