Задать вопрос
@howuu

Как создать и заполнить объект dict с ключами sqlite3?

Сейчас у меня есть list и база данных, которая выглядит так:
5c94353a1e8d4754009577.jpeg5c943541ecab3267273239.jpeg
В ней есть 3 таблицы category, product, media

А list я создаю так:

def select_product_all(self):
        with self.connection:
            products = []
            for product in self.cursor.execute("SELECT  * FROM products_product,  products_product_media WHERE products_product.id = products_product_media.product_id").fetchall():
                products.append(product)
        self.connection.close()
        return products


Сейчас, что бы например вывести строку
Для обычного кактуса соответствует картинка media/1.jpg

Мне нужна вызывать это к примеру так
print ("Для",  products[0][1] , " соответствует картинка" ,  products[0][6])

Вот, а хочу сделать словарь и подставить туда все эти значения, так что бы я мог вызывать это так
print("Для",  products.name , " соответствует картинка" ,  products.media])


Как мне переделать код так, что бы все ключи вроде price, category_id и т.д. заполнились в словарь?
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
Чую, что вы дошли до момента, когда вам нужна ORM, т.к. dict это точно то, что вам тут не нужно. Думаю, стоит посмотреть на SqlAlchemy, как наиболее распространенную. Не обращайте внисание если примеры и статьи будут про, например, mysql. Скорее всего ваш код будет отличаться лишь строкой подклбчения к бд.
Ответ написан
Комментировать
@bbkmzzzz
Ну или, если не ORM, то создавайте свой класс и инициализируйте записью из базы
class Product:
    def __init__(self, data_from_db):
        self.name = data_from_db[1]

def select_product_all(self):
        with self.connection:
            products = []
            for product in self.cursor.execute("SELECT  * FROM products_product,  products_product_media WHERE products_product.id = products_product_media.product_id").fetchall():
                products.append(Product(product))
        self.connection.close()
        return products

for i product in products:
    print(product, product.name)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы