30 lines
749 B
Python
30 lines
749 B
Python
"""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() |