initial: novel-app snapshot

This commit is contained in:
omo
2026-08-17 17:11:30 +08:00
commit 1ae06209ac
34 changed files with 2821 additions and 0 deletions

30
extensions.py Normal file
View File

@@ -0,0 +1,30 @@
"""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()