Comments 3
Не рассматривали использование sqlalchemy? Мне эта библиотека очень упростила работу с БД и повысила читаемость кода. Сейчас использую даже если нужна одна таблица в БД.
+1
Слышал об этой библиотеке, но не работал с ней.
Спасибо, буду иметь в виду.
Спасибо, буду иметь в виду.
0
Небольшой пример использования, к сожалению без комментариев.
И потом ипользуем следующим образом:
И это лишь верхушка айсберга sqlalchemy.
Инициализация ORM
from sqlalchemy import create_engine, Column, REAL, TEXT
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///data.db')
Base = declarative_base()
Session = sessionmaker(bind=engine)
class Item(Base):
__tablename__ = 'items'
url = Column(TEXT, primary_key=True)
title = Column(TEXT)
old_price = Column(REAL)
price = Column(REAL)
def __init__(self, url: str, title: str, old_price: float, price: float) -> None:
self.url = url
self.title = title
self.price = price
self.old_price = old_price
def __repr__(self):
return f'<Item {self.title}>'
class SQLAlc(object):
def __init__(self):
self.__session = Session()
def add_item(self, item):
self.__session.add(item)
self.__session.commit()
return item
def create_if_not_exist(self, item):
exist = self.__session.query(Item).filter_by(url=item.url).first()
if exist:
return None
else:
self.add_item(item)
return item
def __del__(self):
self.__session.close()
def init_db():
Base.metadata.create_all(bind=engine)
И потом ипользуем следующим образом:
new_item = Item(url, title, old_price, price)
sqa = SQLAlc()
sqa.create_if_not_exist(new_item)
И это лишь верхушка айсберга sqlalchemy.
+1
Sign up to leave a comment.
Как проанализировать рынок фотостудий с помощью Python (2/3). База данных