تعريف مخطط لنموذج
صرّح بالحقول التي تربطها بنموذجك.
تعريف مخطط لنموذج درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What a Schema Is
A Schema is a Python class that lists the fields your data should have. It mirrors a model but lives separately, just for input and output.
Subclass Schema
Every schema inherits from Marshmallow's base Schema class. Naming it after your model, like UserSchema, keeps the intent obvious at a glance.
class UserSchema(Schema):
passDeclare Fields
Inside the class you add attributes from the fields module. Each one names a key that will appear in your serialized JSON output.
id = fields.Int()
name = fields.Str()Field Types Matter
Pick a field type that matches the data: Int, Str, Bool, Float, or DateTime. The type controls how values are formatted and validated.
active = fields.Bool()
score = fields.Float()Dates Done Right
A DateTime field serializes Python datetimes into clean ISO strings automatically. No more manual formatting scattered across your views.
created_at = fields.DateTime()Mark Required Fields
Pass required=True to a field so loading fails if it is missing. This is your first taste of validation baked right into the schema.
email = fields.Str(required=True)Leave Secrets Out
Only list fields you want to expose. By simply not declaring password_hash, the schema can never leak it into a response.
Rename with data_key
Want camelCase JSON from a snake_case attribute? Use data_key to map an internal name to a different external key.
first_name = fields.Str(data_key="firstName")dump_only Fields
Some fields, like an id, should appear in output but never be accepted as input. Mark them dump_only to keep them read-only.
id = fields.Int(dump_only=True)Instantiate the Schema
You create one instance to reuse: user_schema equals UserSchema(). Pass many=True later when you serialize a whole list.
user_schema = UserSchema()One Schema, Two Jobs
This single class will both dump models to JSON and load JSON back into checked data. You define the shape once and use it both directions.
Quick Check
You want id readable in output but never accepted as input.
Recap
A Schema subclass declares typed fields that map to your model. Options like required, dump_only, and data_key shape exactly what goes in and out.
الأسئلة الشائعة
هل درس «تعريف مخطط لنموذج» مجاني؟
نعم — نص درس «تعريف مخطط لنموذج» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.
ماذا ستتعلم في «تعريف مخطط لنموذج»؟
صرّح بالحقول التي تربطها بنموذجك. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟
لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تعريف مخطط لنموذج»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟
نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا يفشل بناء JSON يدويًا
- تعريف مخطط لنموذج
- تحويل الكائنات إلى JSON
- تحميل حمولات الإدخال والتحقق منها