import sqlite3
import random
DB_PATH = "products.db"
def init_db():
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
category TEXT,
price REAL
)
''')
# Проверка на наличие данных
cursor.execute("SELECT COUNT(*) FROM products")
if cursor.fetchone()[0] == 0:
categories = ["Электроника", "Одежда", "Дом", "Спорт", "Еда"]
adjectives = ["Супер", "Премиум", "Эко", "Смарт", "Классик"]
items = ["Телефон", "Чайник", "Кроссовки", "Стол", "Яблоки", "Ноутбук", "Лампа"]
test_data = []
for _ in range(100):
name = f"{random.choice(adjectives)} {random.choice(items)} {random.randint(1, 99)}"
category = random.choice(categories)
price = round(random.uniform(10.0, 5000.0), 2)
test_data.append((name, category, price))
cursor.executemany("INSERT INTO products (name, category, price) VALUES (?, ?, ?)", test_data)
conn.commit()
conn.close()
def get_all_products():
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("SELECT id, name, category, price FROM products ORDER BY id")
rows = cursor.fetchall()
conn.close()
return [{"id": r[0], "name": r[1], "category": r[2], "price": r[3]} for r in rows]
def find_products_by_name(name_query):
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute(
"SELECT id, name, category, price FROM products WHERE name LIKE ? ORDER BY id",
(f"%{name_query}%",),
)
rows = cursor.fetchall()
conn.close()
return [{"id": r[0], "name": r[1], "category": r[2], "price": r[3]} for r in rows]
def add_new_product(name, category, price):
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("INSERT INTO products (name, category, price) VALUES (?, ?, ?)", (name, category, price))
conn.commit()
conn.close()
return True