Определение схемы для модели
Объявляйте поля, соответствующие вашей модели.
«Определение схемы для модели» — бесплатный урок 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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему самодельный JSON не справляется
- Определение схемы для модели
- Преобразование объектов в JSON
- Загрузка и проверка входных данных