qnloft-stock/DB/sqlite_db_main.py

51 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pathlib import Path
from DB.db_main import *
import platform
import logging
class SqliteDbMain(DbMain):
def __init__(self, database_name):
# logging.basicConfig()
# logging.getLogger('sqlalchemy.engine').setLevel(logging.ERROR)
# logging.getLogger('sqlalchemy.pool').setLevel(logging.ERROR)
# logging.getLogger('sqlalchemy.dialects').setLevel(logging.ERROR)
# logging.getLogger('sqlalchemy.orm').setLevel(logging.ERROR)
self.database_name = database_name
super().__init__()
self.engine = self.__create_sqlite_engine()
self.engine_path = self.__get_path()
self.session = self.get_session()
self.inspector = inspect(self.engine)
def __get_path(self):
sys_platform = platform.platform().lower()
print(f'当前操作系统:{platform.platform()}')
__engine = ''
if 'windows' in sys_platform.lower():
__engine = f"E:\\sqlite_db\\stock_db\\{self.database_name}"
elif 'macos' in sys_platform.lower():
__engine = f"/Users/renmeng/Documents/sqlite_db/{self.database_name}"
else:
__engine = f"{self.database_name}"
return __engine
def __create_sqlite_engine(self):
sys_platform = platform.platform().lower()
__engine = ''
if 'windows' in sys_platform.lower():
__engine = f"sqlite:///E:\\sqlite_db\\stock_db\\{self.database_name}"
elif 'macos' in sys_platform.lower():
__engine = f"sqlite:////Users/renmeng/Documents/sqlite_db/{self.database_name}"
else:
__engine = f"sqlite:///{self.database_name}"
print(f"当前__engine是{__engine}")
return create_engine(__engine, pool_size=10, pool_timeout=10, echo=True)
def get_db_size(self):
file_size = Path(self.engine_path).stat().st_size
total = f"{file_size / (1024 * 1024):.2f} MB"
print(f"文件大小: {file_size / (1024 * 1024):.2f} MB")
return total