12345678910111213141516171819202122232425262728293031 |
- # database.py
- from sqlalchemy import create_engine
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.orm import sessionmaker
- from configs.logging import logger
- from configs.settings import config
- USER = config.get('DATABASE', 'USER')
- PWD = config.get('DATABASE', 'pwd')
- DB_NAME = config.get('DATABASE', 'DB_NAME')
- HOST = config.get('DATABASE', 'HOST')
- PORT = config.get('DATABASE', 'PORT')
- SQLALCHEMY_DATABASE_URL = f'mysql+mysqlconnector://{USER}:{PWD}@{HOST}:{PORT}/{DB_NAME}?charset=utf8&auth_plugin=mysql_native_password'
- engine = create_engine(
- SQLALCHEMY_DATABASE_URL, pool_pre_ping=True
- )
- SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
- logger.info("connect to mysql success: ")
- Base = declarative_base()
- class BaseModel(Base):
- __abstract__ = True
- def to_dict(self):
- return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|