mirror of
https://github.com/KingHWJ/WeReadBoard.git
synced 2026-11-03 18:24:58 +08:00
507b9c57047b9350f887701088e7154dc709a4cd
1. 数据源切换至 MySQL: - app.py 从 SQLite 切换到 PyMySQL,所有 API 读取 MySQL weread_dashboard 数据库 - 新增 db_required 装饰器统一管理数据库连接和异常处理 - 新增 /api/health 健康检查接口,检测 MySQL 连接状态 - MySQL 连接失败时返回 HTTP 503 和告警信息 - 修复 fetched_at 字段 Unix 时间戳到 MySQL TIMESTAMP 的兼容问题 2. 前端数据库连接告警: - 页面加载时优先调用 /api/health 检查 MySQL 连接 - 连接失败时显示固定告警横幅,阻止后续数据加载 - CSS 告警横幅样式(黄色背景、下滑动画) 3. 代码中文注释: - app.py:所有函数、API 接口、工具函数添加完整中文文档注释 - fetch_data.py:所有 SQLite 建表语句添加列级中文注释 - migrate_to_mysql.py:保留已有中文注释 4. 技术文档与元数据文档: - docs/TECHNICAL_DOC.md:项目概述、系统架构、API 设计、部署指南 - docs/METADATA_DOC.md:18 张表完整字段说明、索引、表关系、数据类型规范
微信读书数据展示网站
基于微信读书 API 的个人读书数据展示网站,数据存储在本地 SQLite 数据库中。
项目结构
.
├── fetch_data.py # 数据采集脚本(从微信读书 API 拉取数据到 SQLite)
├── app.py # Flask 后端服务
├── weread.db # SQLite 数据库(运行 fetch_data.py 后生成)
├── requirements.txt # Python 依赖
├── templates/
│ └── index.html # 前端页面
└── static/
├── css/style.css # 样式文件
└── js/app.js # 前端逻辑
快速开始
1. 设置环境变量
export WEREAD_API_KEY=wrk-xxxxxxxx # 你的微信读书 API Key
2. 安装依赖
pip install -r requirements.txt
3. 采集数据
python fetch_data.py
将拉取书架、阅读统计、笔记等数据并存入 weread.db。
4. 启动网站
python app.py
访问 http://127.0.0.1:8080 即可查看读书数据展示。
功能模块
| 模块 | 说明 |
|---|---|
| 总览仪表盘 | 累计阅读时长、阅读天数、书架藏书数、笔记总数 |
| 年度趋势图 | 各年度阅读时长柱状图 |
| 时段分布 | 24 小时阅读时段分布折线图 |
| 偏好分类 | 阅读分类占比饼图 |
| 偏好作者 | 阅读最多的作者排行 |
| 读书排行 | 阅读时长最久的书籍 TOP 20 |
| 书架 | 全部书架书籍展示,支持分类筛选和已读完筛选 |
| 笔记概览 | 有笔记的书籍及划线/想法/书签统计 |
数据库表结构
| 表名 | 说明 |
|---|---|
| books | 书架书籍信息 |
| reading_stats | 阅读统计概要(overall/annually) |
| read_times | 阅读时长时间序列 |
| read_longest | 阅读时长最久的书籍 |
| prefer_categories | 偏好分类 |
| prefer_authors | 偏好作者 |
| prefer_time | 24 小时阅读时段分布 |
| notebooks | 笔记本概览 |
| read_stat_items | 阅读统计摘要项 |
| archives | 书单/归档 |
更新数据
随时重新运行 python fetch_data.py 即可刷新本地数据。
Languages
Python
42.4%
JavaScript
25.8%
CSS
24.4%
HTML
5.2%
Shell
2.2%