Pybites Logo

A little detour: pydantic

Level: Beginner (score: 2)

Pydantic is an awesome library to do

data validation and settings management using python type annotations.

FastAPI is a heavy user of it so let's learn it now! :)

If you are new to typing / type annotations, maybe you want to complete the first 3 Bites of this learning path first, and/or read our article series.

In this Bite you are going to define your first Pydantic Food model.

A model is a class with one or more (typed) attributes. To get all Pydantic's goodness we'll need to subclass Pydantic's BaseModel class, Pydantic's homepage shows you how and it's probably enough detail to solve this Bite.

This is the Food model you'll define now and use in upcoming Bites. Our tests will use and test it.

Attribute Type Example
id int 1
name str oatmeal
serving_size str 100 grams
kcal_per_serving * int 336
protein_grams float 13.2
fibre_grams float 10.1


* kcal = calories

** fibre_grams is an optional value which defaults to 0.

We'll come back to Pydantic in a later Bite to define two more models to track food intake for a user day by day. For we won't overload you with object relationships that multiple models inevitably introduce. Step by step!

In the following Bites we'll use this Pydantic model to build the API's CRUD (create-read-update-delete) actions around it.

Have fun with Pydantic!