"""Flask 绑定的扩展:每请求数据库连接与 teardown。 这些辅助函数依赖 Flask 的 `g`,只能在应用/请求上下文中使用。 纯(无 Flask 依赖)的辅助函数位于 services/ 与 repositories/。 """ import logging import sqlite3 from flask import g import config logger = logging.getLogger(__name__) def get_db(): """返回每请求的 SQLite 连接(按名称访问行)。""" if "db" not in g: conn = sqlite3.connect(config.DB_PATH) conn.row_factory = sqlite3.Row g.db = conn return g.db def close_db(exception=None): """通过 app.teardown_appcontext 注册的 teardown 处理器。""" conn = g.pop("db", None) if conn is not None: conn.close()