Flask Academy · บทเรียน

โหลดและตรวจสอบข้อมูลนำเข้า

แปลงข้อมูลคำขอกลับเป็นออบเจ็กต์พร้อมกฎตรวจสอบ

บทเรียน 4 จาก 413 ขั้นตอน

โหลดและตรวจสอบข้อมูลนำเข้า เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใด JSON ที่สร้างด้วยมือจึงล้มเหลว
  2. กำหนดแบบแผนสำหรับโมเดล
  3. แปลงออบเจ็กต์เป็น JSON
  4. โหลดและตรวจสอบข้อมูลนำเข้า
← กลับไปที่ Flask Academy