|
@@ -11,7 +11,14 @@ from model import DeviceConfig, PhotoRecord
|
|
|
# 创建SQLite数据库引擎
|
|
# 创建SQLite数据库引擎
|
|
|
sqlite_file_name = "database.db"
|
|
sqlite_file_name = "database.db"
|
|
|
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
|
-engine = create_engine(sqlite_url, echo=True)
|
|
|
|
|
|
|
+engine = create_engine(
|
|
|
|
|
+ sqlite_url,
|
|
|
|
|
+ echo=False,
|
|
|
|
|
+ pool_size=10,
|
|
|
|
|
+ max_overflow=20,
|
|
|
|
|
+ pool_timeout=30,
|
|
|
|
|
+ pool_recycle=1800,
|
|
|
|
|
+)
|
|
|
|
|
|
|
|
# 创建表
|
|
# 创建表
|
|
|
def create_all_database():
|
|
def create_all_database():
|
|
@@ -19,7 +26,10 @@ def create_all_database():
|
|
|
# 创建会话
|
|
# 创建会话
|
|
|
def __get_session():
|
|
def __get_session():
|
|
|
with Session(engine) as session:
|
|
with Session(engine) as session:
|
|
|
- yield session
|
|
|
|
|
|
|
+ try:
|
|
|
|
|
+ yield session
|
|
|
|
|
+ finally:
|
|
|
|
|
+ session.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
def batch_insert_device_configs(session: Session, data_list: list):
|
|
def batch_insert_device_configs(session: Session, data_list: list):
|
|
@@ -28,6 +38,7 @@ def batch_insert_device_configs(session: Session, data_list: list):
|
|
|
device_config = DeviceConfig(**data)
|
|
device_config = DeviceConfig(**data)
|
|
|
session.add(device_config)
|
|
session.add(device_config)
|
|
|
session.commit()
|
|
session.commit()
|
|
|
|
|
+ session.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
def insert_photo_records(image_deal_mode: int, goods_art_no: str, image_index:int):
|
|
def insert_photo_records(image_deal_mode: int, goods_art_no: str, image_index:int):
|
|
@@ -55,6 +66,7 @@ class CRUD:
|
|
|
session.add(db_obj)
|
|
session.add(db_obj)
|
|
|
session.commit()
|
|
session.commit()
|
|
|
session.refresh(db_obj)
|
|
session.refresh(db_obj)
|
|
|
|
|
+ session.close()
|
|
|
return db_obj
|
|
return db_obj
|
|
|
|
|
|
|
|
def read(
|
|
def read(
|
|
@@ -72,7 +84,9 @@ class CRUD:
|
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
|
else:
|
|
else:
|
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
|
- return session.exec(query).first()
|
|
|
|
|
|
|
+ data = session.exec(query).first()
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return data
|
|
|
|
|
|
|
|
def read_all(
|
|
def read_all(
|
|
|
self,
|
|
self,
|
|
@@ -89,7 +103,9 @@ class CRUD:
|
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
|
else:
|
|
else:
|
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
|
- return session.exec(query).all()
|
|
|
|
|
|
|
+ data = session.exec(query).all()
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return data
|
|
|
|
|
|
|
|
def update(self, session: Session, obj_id: int, **kwargs):
|
|
def update(self, session: Session, obj_id: int, **kwargs):
|
|
|
db_obj = session.get(self.model, obj_id)
|
|
db_obj = session.get(self.model, obj_id)
|
|
@@ -99,6 +115,7 @@ class CRUD:
|
|
|
setattr(db_obj, key, value)
|
|
setattr(db_obj, key, value)
|
|
|
session.commit()
|
|
session.commit()
|
|
|
session.refresh(db_obj)
|
|
session.refresh(db_obj)
|
|
|
|
|
+ session.close()
|
|
|
return db_obj
|
|
return db_obj
|
|
|
|
|
|
|
|
def deleteConditions(
|
|
def deleteConditions(
|
|
@@ -121,12 +138,14 @@ class CRUD:
|
|
|
for obj in objects_to_delete:
|
|
for obj in objects_to_delete:
|
|
|
session.delete(obj)
|
|
session.delete(obj)
|
|
|
session.commit()
|
|
session.commit()
|
|
|
|
|
+ session.close()
|
|
|
return True
|
|
return True
|
|
|
|
|
|
|
|
def delete(self, session: Session, obj_id: int):
|
|
def delete(self, session: Session, obj_id: int):
|
|
|
db_obj = session.get(self.model, obj_id)
|
|
db_obj = session.get(self.model, obj_id)
|
|
|
session.delete(db_obj)
|
|
session.delete(db_obj)
|
|
|
session.commit()
|
|
session.commit()
|
|
|
|
|
+ session.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
def SqlQuery():
|
|
def SqlQuery():
|