И последним шагом, протестируем проект и создадим следующую структуру для наших категорий.
Обратите внимание, что PostgreSQL не пропустит запрос создания родительской категории, где "parent_id": 0, теперь нам необходимо использовать в запросе "parent_id": null
Создадим следующие категории:
- Apple
- Смартфоны
- Ноутбуки
- Планшеты
- Asus
Можете их создать запустив сервер командой uvicorn app.main:app --reloadи используя документацию. Также можете напрямую выполнить SQL запрос:
INSERT INTO public.categories (id, name, slug, is_active, parent_id) VALUES (1, 'Apple', 'apple', true, null);
INSERT INTO public.categories (id, name, slug, is_active, parent_id) VALUES (2, 'Смартфоны', 'smartfony', true, 1);
INSERT INTO public.categories (id, name, slug, is_active, parent_id) VALUES (3, 'Ноутбуки', 'noutbuki', true, 1);
INSERT INTO public.categories (id, name, slug, is_active, parent_id) VALUES (4, 'Планшеты', 'planshety', true, 1);
INSERT INTO public.categories (id, name, slug, is_active, parent_id) VALUES (5, 'Asus', 'asus', true, null);
В результате получим следующую структуру категорий:
Также создадим товары в нашей БД, можете также использовать следующий запрос.
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (1, 'IPhone 15', 'iphone-15', 'string', 100000, 'string', 10, 2, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (2, 'IPhone 14', 'iphone-14', 'string', 80000, 'string', 15, 2, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (3, 'IPhone 13', 'iphone-13', 'string', 72000, 'string', 5, 2, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (4, 'IPhone 12', 'iphone-12', 'string', 65000, 'string', 2, 2, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (5, 'MacBook Air', 'macbook-air', 'string', 90000, 'string', 8, 3, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (6, 'MacBook Pro', 'macbook-pro', 'string', 140000, 'string', 11, 3, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (7, 'iPad (9th Gen)', 'ipad-9th-gen', 'string', 35000, 'string', 30, 4, 0, true);
INSERT INTO public.products (id, name, slug, description, price, image_url, stock, category_id, rating, is_active) VALUES (8, 'iPad (10th Gen)', 'ipad-10th-gen', 'string', 52000, 'string', 20, 4, 0, true);
В результате мы получим следующие товары.
На этом основная работа с запросами закончена, далее мы продолжим работать над проектом, в том числе с запросами SQLAlchemy.