| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """
- 数据库管理器
- 负责数据库连接及会话管理
- """
- from flask_sqlalchemy import SQLAlchemy
- from flask_migrate import Migrate
- import os
- # 初始化数据库对象
- db = SQLAlchemy()
- migrate = Migrate()
- def init_db(app):
- """
- 初始化数据库连接
-
- Args:
- app: Flask应用实例
- """
- # 确保数据目录存在
- data_dir = os.path.join(os.getcwd(), "data")
- if not os.path.exists(data_dir):
- os.makedirs(data_dir, exist_ok=True)
-
- # 设置数据库URI
- sqlite_path = os.path.join(data_dir, "financial_tools.db")
- app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{sqlite_path}'
- app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
-
- # 初始化SQLAlchemy和Migrate
- db.init_app(app)
- migrate.init_app(app, db)
-
- # 初始化数据库表结构和基础数据
- with app.app_context():
- from app.database.schema import create_schemas
- create_schemas(app)
-
- # 初始化trend_info表数据
- from app.database.init_trend_info import init_trend_info
- init_trend_info()
-
- return db
- def get_db():
- """
- 获取数据库实例
-
- Returns:
- SQLAlchemy实例
- """
- return db
- def close_db():
- """
- 关闭数据库连接
- """
- db.session.close()
|