sql_models.py 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. from sqlalchemy import create_engine, MetaData
  2. from sqlalchemy.orm import sessionmaker, scoped_session
  3. from config import using_config
  4. class DB():
  5. def __init__(self, config=None):
  6. self.config = using_config if not config else config
  7. self.engine = self.DBengine()
  8. self.session = self.DBSession()
  9. self.metadata = MetaData(self.engine)
  10. def DBengine(self):
  11. # 初始化数据库连接:
  12. db_uri = 'mysql+pymysql://' \
  13. '{username}:{password}@{host}:{port}/{database}'.format(username=self.config['username'],
  14. password=self.config['password'],
  15. host=self.config['host'],
  16. port=self.config['port'],
  17. database=self.config['database'])
  18. engine = create_engine(db_uri, pool_size=1024, pool_recycle=1800,
  19. pool_pre_ping=True, max_overflow=100, echo=False)
  20. return engine
  21. def DBSession(self):
  22. # 创建DBSession类型:
  23. session_factory = sessionmaker(bind=self.engine)
  24. DBSession = scoped_session(session_factory)
  25. DBSession = DBSession()
  26. return DBSession