/
valieva
/
project
Обзор
Документация
Войти
/
valieva
/
project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
BACKEND
apppy.py
126 строк
6 KB
valieva
upload files
02 июн 2025, 14:44
02 июн 2025, 14:44
7790b5a
Код
Авторство
О чём код?
# ... (после существующего кода) # Маршрут для заполнения тестовыми данными @app.route('/fill_test_data') def fill_test_data(): try: # Очистка существующих данных db.session.query(Review).delete() db.session.query(Price).delete() db.session.query(Product).delete() db.session.query(Seller).delete() db.session.query(Category).delete() db.session.commit() # Создание категорий electronics = Category(name="Электроника", url="https://market.yandex.ru/catalog--elektronika/54440") phones = Category(name="Смартфоны", url="https://market.yandex.ru/catalog--smartfony/26893750", parent=electronics) laptops = Category(name="Ноутбуки", url="https://market.yandex.ru/catalog--noutbuki/54544", parent=electronics) home = Category(name="Товары для дома", url="https://market.yandex.ru/catalog--tovary-dlia-doma/54433") kitchen = Category(name="Кухонная техника", url="https://market.yandex.ru/catalog--kukhonnaia-tekhnika/54419", parent=home) db.session.add_all([electronics, phones, laptops, home, kitchen]) db.session.commit() # Создание продавцов seller1 = Seller(name="ТехноМир", rating=4.8, reviews_count=12500) seller2 = Seller(name="Электросила", rating=4.5, reviews_count=8700) seller3 = Seller(name="ВсеВДом", rating=4.7, reviews_count=11200) seller4 = Seller(name="ГаджетЛенд", rating=4.3, reviews_count=5600) db.session.add_all([seller1, seller2, seller3, seller4]) db.session.commit() # Создание товаров products = [ Product(name="iPhone 15 Pro Max", description="Флагманский смартфон Apple с процессором A17 Pro", category_id=phones.id), Product(name="Samsung Galaxy S24 Ultra", description="Флагман Samsung с камерой 200 МП", category_id=phones.id), Product(name="Xiaomi Redmi Note 13", description="Бюджетный смартфон с AMOLED-экраном", category_id=phones.id), Product(name="MacBook Pro 16 M3", description="Мощный ноутбук для профессионалов", category_id=laptops.id), Product(name="ASUS ROG Zephyrus G14", description="Игровой ноутбук с RTX 4060", category_id=laptops.id), Product(name="Lenovo IdeaPad 5", description="Ультрабук для работы и учебы", category_id=laptops.id), Product(name="Холодильник Bosch KGN39", description="Двухкамерный холодильник с No Frost", category_id=kitchen.id), Product(name="Кофемашина DeLonghi Eletta", description="Автоматическая кофемашина с капучинатором", category_id=kitchen.id), ] db.session.add_all(products) db.session.commit() # Создание цен prices = [] for product in products: # Случайная цена для каждого продавца base_price = random.randint(20000, 150000) prices.append(Price( product_id=product.id, seller_id=seller1.id, price=base_price * 0.98, in_stock=random.choice([True, True, True, False]) ) prices.append(Price( product_id=product.id, seller_id=seller2.id, price=base_price * 1.02, in_stock=random.choice([True, True, False]) ) if "iPhone" in product.name or "MacBook" in product.name: prices.append(Price( product_id=product.id, seller_id=seller4.id, price=base_price * 0.95, in_stock=random.choice([True, False]) ) if "Холодильник" in product.name or "Кофемашина" in product.name: prices.append(Price( product_id=product.id, seller_id=seller3.id, price=base_price * 1.05, in_stock=random.choice([True, True]) ) db.session.add_all(prices) db.session.commit() # Создание отзывов authors = ["Алексей", "Мария", "Дмитрий", "Екатерина", "Артем", "Ольга", "Иван", "Анна"] review_texts = [ "Отличный товар, полностью соответствует описанию", "Качество на высоте, рекомендую к покупке", "Не понравился, есть недочеты в сборке", "Лучшее соотношение цена/качество на рынке", "Работает уже месяц, пока проблем не было", "Разочарован покупкой, ожидал большего", "Идеально подошло под мои задачи", "Быстрая доставка, товар в отличном состоянии" ] reviews = [] for product in products: for _ in range(random.randint(3, 8)): # 3-8 отзывов на товар review_date = datetime(2024, random.randint(1, 6), random.randint(1, 28)) reviews.append(Review( product_id=product.id, author=random.choice(authors), rating=random.randint(1, 5), text=random.choice(review_texts), date=review_date )) db.session.add_all(reviews) db.session.commit() return "Тестовые данные успешно созданы!" except Exception as e: db.session.rollback() return f"Ошибка при создании тестовых данных: {str(e)}", 500 # ... (остальной код)