database.py 926 B

12345678910111213141516171819202122232425262728293031
  1. # database.py
  2. from sqlalchemy import create_engine
  3. from sqlalchemy.ext.declarative import declarative_base
  4. from sqlalchemy.orm import sessionmaker
  5. from configs.logging import logger
  6. from configs.settings import config
  7. USER = config.get('DATABASE', 'USER')
  8. PWD = config.get('DATABASE', 'pwd')
  9. DB_NAME = config.get('DATABASE', 'DB_NAME')
  10. HOST = config.get('DATABASE', 'HOST')
  11. PORT = config.get('DATABASE', 'PORT')
  12. SQLALCHEMY_DATABASE_URL = f'mysql+mysqlconnector://{USER}:{PWD}@{HOST}:{PORT}/{DB_NAME}?charset=utf8&auth_plugin=mysql_native_password'
  13. engine = create_engine(
  14. SQLALCHEMY_DATABASE_URL, pool_pre_ping=True
  15. )
  16. SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
  17. logger.info("connect to mysql success: ")
  18. Base = declarative_base()
  19. class BaseModel(Base):
  20. __abstract__ = True
  21. def to_dict(self):
  22. return {c.name: getattr(self, c.name) for c in self.__table__.columns}