← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися описувати структуру даних як модель і автоматично перевіряти вхідний JSON.
Krok 1. Встановити pydantic у віртуальному середовищі.
Komandi: cd ~/python_lab1; source .venv/bin/activate; pip install "pydantic>=2"
Krok 2. Створити файл src/app/model8.py.
Komanda: cd src; touch app/model8.py
Krok 3. Описати просту модель користувача.
Komanda: printf "from pydantic import BaseModel, EmailStr
class User(BaseModel):
id: int
name: str
email: EmailStr
is_active: bool = True
if __name__ == "__main__":
data = {"id": 1, "name": "Taras", "email": "taras@example.com"}
user = User.model_validate(data)
print(user)
" > app/model8.py
Krok 4. Запустити модель і перевірити вивід.
Komanda: export PYTHONPATH=$(pwd); python app/model8.py
Krok 5. Змінити вхідні дані на некоректний email і подивитися помилку.
Komanda: sed -i "s/taras@example.com/not_email/" app/model8.py 2>/dev/null || echo "онови вручну"
Krok 6. Повторно запустити скрипт і зафіксувати тип винятку.
Komanda: python app/model8.py || echo "validation error"
Krok 7. Додати вкладену модель, наприклад Profile з полем age.
Poyasnennya: модель User може мати поле profile: Profile.
Krok 8. Продемонструвати автоматичну конвертацію типів наприклад рядок до int.
Poyasnennya: передати age як рядок і перевірити що модель його перетворює.
Krok 9. Занотувати як такі моделі можна використовувати у API клієнтах і серверах.
Krok 10. Mini zvit.
Zavdannya: опиши плюси і мінуси використання pydantic у невеликих скриптах.