refactor: 模块化重构 v3.4.0
🎯 重构目标: - 将 3700+ 行单文件拆分为多个模块 - 清晰的职责分离,便于维护和扩展 📁 模块结构: - config.py: 配置常量和路径 - database.py: 数据库操作 - utils.py: 工具函数(日志、进程、cron等) - routes_cron.py: Cron管理API - routes_system.py: 系统监控API - routes_config.py: 配置管理API - routes_email.py: 邮件通知API - routes_project.py: 项目管理API - templates.py: HTML模板 - app.py: 主入口文件 ✨ 优势: - 易于维护:每个模块职责明确 - 易于扩展:新增功能只需添加对应模块 - 易于测试:模块独立,便于单元测试 - 易于理解:新人能快速上手 📝 更新 README.md,详细说明项目结构和API接口
This commit is contained in:
76
database.py
Normal file
76
database.py
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
数据库操作模块
|
||||
"""
|
||||
|
||||
import sqlite3
|
||||
from flask import g
|
||||
from config import DB_FILE
|
||||
|
||||
|
||||
def get_db():
|
||||
"""获取数据库连接"""
|
||||
if 'db' not in g:
|
||||
g.db = sqlite3.connect(DB_FILE)
|
||||
g.db.row_factory = sqlite3.Row
|
||||
return g.db
|
||||
|
||||
|
||||
def close_db(error):
|
||||
"""关闭数据库连接"""
|
||||
if hasattr(g, 'db'):
|
||||
g.db.close()
|
||||
|
||||
|
||||
def init_db():
|
||||
"""初始化数据库"""
|
||||
conn = sqlite3.connect(DB_FILE)
|
||||
conn.row_factory = sqlite3.Row
|
||||
c = conn.cursor()
|
||||
|
||||
# Cron 任务表
|
||||
c.execute('''CREATE TABLE IF NOT EXISTS cron_tasks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
expression TEXT NOT NULL,
|
||||
command TEXT NOT NULL,
|
||||
description TEXT,
|
||||
category TEXT DEFAULT 'other',
|
||||
enabled INTEGER DEFAULT 1,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
)''')
|
||||
|
||||
# Cron 历史版本表
|
||||
c.execute('''CREATE TABLE IF NOT EXISTS cron_history (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER NOT NULL,
|
||||
version INTEGER NOT NULL,
|
||||
name TEXT,
|
||||
expression TEXT,
|
||||
command TEXT,
|
||||
description TEXT,
|
||||
category TEXT,
|
||||
enabled INTEGER,
|
||||
operation TEXT,
|
||||
operator TEXT DEFAULT 'system',
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (task_id) REFERENCES cron_tasks(id)
|
||||
)''')
|
||||
|
||||
# Cron 执行日志表
|
||||
c.execute('''CREATE TABLE IF NOT EXISTS cron_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER,
|
||||
execution_time TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
status TEXT,
|
||||
output TEXT,
|
||||
FOREIGN KEY (task_id) REFERENCES cron_tasks(id)
|
||||
)''')
|
||||
|
||||
# 创建索引
|
||||
c.execute('CREATE INDEX IF NOT EXISTS idx_cron_history_task ON cron_history(task_id)')
|
||||
c.execute('CREATE INDEX IF NOT EXISTS idx_cron_logs_task ON cron_logs(task_id)')
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user