Создание моделей интернет магазина
После определения основных маршрутов, нам необходимо создать модели Pydantic для нашего приложения. Модели мы будем хранить в файле app/schemas.py
На данный момент, мы будем хранить в нем только модели для категорий и продуктов. Добавим в этот файл следующий код:
from pydantic import BaseModel
class CreateProduct(BaseModel):
name: str
description: str
price: int
image_url: str
stock: int
category: int
class CreateCategory(BaseModel):
name: str
parent_id: int | None
Разберем эти модели. Модель CreateProduct будет отвечать за создание продукта и будет принимать следующие поля:
name: Имя товара, тип поля строкаdescription: Описание товара, тип поля строкаprice: Цена товара, тип поля целое числоimage_url: Ссылка на изображение товара, тип поля строкаstock: Количество товара в наличии, тип поля целое числоcategory: ID категории товара, тип поля целое число
Модель CreateCategory будет отвечать за создание категории товаров, и имеет 2 поля:
name: Имя категории, тип поля строкаparent_id: ID родительской категории, тип поля целое число
На этом разработка моделей была закончена, далее по курсу мы еще будем работать с моделями Pydantic. А пока же перейдем в следующем разделе к работе с БД на примере этого интернет магазина.
Как альтернатива варианту
parent_id: int | Noneможно использоватьparent_id: Optional[int], импортировать из библиотекиtyping, часто такое вижу.@Dmitriy_Novozhilov, в документации к FastAPI рекомендуется не использовать Optional для типизации