Григорий IT://home: post #1249 — TG.ME

Сериализаторы простыми словами

Слово страшное (много букв ааа), но если совсем по-простому его пояснять, то сериализатор - это переводчик между Python-объектами и данными, которые уходят или приходят через API

Зачем он нужен?

Представь, что ты разрабатываешь web-сервис и у тебя есть некая переменная-словарь в Python-коде:

user = {
"id": 1,
"name": "Алексей"
}


И перед нами стоит задача: нужно отправить эту информацию на смартфон пользователя через API

Но есть загвоздка - приложение на смартфоне пользователя не понимает Python-структуры (в т.ч. переменные), как тогда быть...🤷‍♂️

Ответ прост - превратить данные в текст формата JSON

И тогда пользователь получит на своё устройство что-то вроде такого текста:

{
"id": 1,
"name": "Алексей"
}


И уже с текстом ему будет проще справиться, чем с какими-то там python-объектами и python-переменными

Вот это превращение Python-объекта в JSON и называется сериализацией

Работает это и в обратную сторону:

Например, когда пользователь заполняет форму регистрации и нажимает кнопку "Отправить", мы по сути шлём на сервер данные в виде JSON-текста:

{
"name": "Алексей",
"email": "[email protected]"
}


Но важный момент - перед тем как сохранить эти данные в базу данных на сервере, нужно как минимум проверить - все ли поля в форме заполнены и корректный ли тип у данных (не написал ли пользователь слово "Привет" в окне для ввода возраста)

А если вместо возраста пришло слово "Привет", сериализатор сразу скажет: стоп, тут ошибка, возраст должен быть числом

Например, с помощью библиотеки Pydantic можно описывать структуру данных и превращать объект в словарь/JSON:
from pydantic import BaseModel

class UserRegister(BaseModel):
name: str
age: int

data = {
"name": "Алексей",
"age": 25
}

user = UserRegister(**data)

print(user.model_dump())
print(user.model_dump_json())


☝️Тут мы описываем, какие поля ожидаем, и какого они должны быть типа.

Таким образом, сериализатор обычно делает две вещи:

1. Готовит данные для отправки из сервера клиенту
2. Проверяет данные, которые пришли от клиента на сервер

Поэтому в backend они используются почти в каждом запросе к API
11⚡4🙂44❤2
July 6, 2026 162