5.1 KiB
5.1 KiB
家庭日报系统设计与实现(Django 5.1.4)
系统概述
一个轻量化的家庭日报系统,用于自动汇总昨日信息(阅读、收获),生成今日计划,注重生活化、个性化和低门槛使用。支持上传文件或视频作为附加内容,并可生成PDF报告定时发送至邮箱。
技术栈
- Python 3.9+:核心开发语言
- Django 5.1.4:Web框架
- SQLite:轻量化数据库
- loguru:日志记录
- Bootstrap 5:前端样式
- Chart.js:数据可视化
- WeasyPrint:PDF生成
- Celery:定时任务
- Redis:消息队列(用于Celery)
- django-celery-beat:定时任务管理
项目结构
diary-family/
├── diary_family/ # Django项目目录
│ ├── settings.py # 项目配置
│ ├── urls.py # 路由配置
│ └── wsgi.py # WSGI配置
├── core/ # 核心应用
│ ├── migrations/ # 数据库迁移
│ ├── models.py # 数据模型
│ ├── views.py # 视图函数
│ ├── forms.py # 表单定义
│ ├── templates/ # 模板文件
│ ├── static/ # 静态文件
│ ├── tasks.py # Celery任务
│ └── apps.py # 应用配置
├── media/ # 媒体文件存储
├── logs/ # 日志目录
├── reports/ # PDF报告存储
├── manage.py # Django管理脚本
└── requirements.txt # 依赖文件
核心功能模块
1. 数据模型设计
1.1 阅读记录表 (ReadingRecord)
- 日期、类型(书籍/文章/视频)、标题、来源、进度、上传文件
1.2 感悟记录表 (InsightRecord)
- 日期、内容、上传文件
1.3 家庭事项表 (FamilyTask)
- 类型(采购/家务)、内容、优先级、状态、截止日期
1.4 今日计划表 (TodayPlan)
- 日期、内容、优先级、类型、状态
1.5 系统配置表 (SystemConfig)
- 邮箱设置(SMTP服务器、端口、用户名、密码)
- 报告发送时间
- 收件人邮箱
2. 核心功能
2.1 昨日记录
- 阅读记录(支持多类型)
- 感悟记录
- 支持文件/视频上传
2.2 家庭事项管理
- 事项添加、编辑、删除
- 按类型、状态筛选
2.3 今日计划生成
- 基于昨日状态和待处理事项自动生成
- 支持手动调整
- 完成状态标记
2.4 报告生成
- 整合昨日阅读、感悟和今日计划
- 可视化统计
- 支持生成PDF格式
- 支持查看历史报告
2.5 定时邮件发送
- 配置每日发送时间
- 自动生成并发送PDF报告到指定邮箱
- 支持手动触发发送
3. 文件上传功能
- 支持上传图片、文档、视频等多种格式
- 自动生成访问链接
- 支持预览和下载
实现步骤
1. 项目初始化
- 创建Django项目
- 创建核心应用
- 配置数据库和媒体文件路径
- 安装依赖包
2. 数据模型实现
- 定义模型类
- 生成并执行数据库迁移
- 创建超级用户
3. 功能实现
- 实现昨日记录表单和视图
- 实现家庭事项管理功能
- 实现今日计划生成和管理
- 实现报告生成功能
- 实现PDF报告生成
- 实现文件上传功能
- 配置Celery和定时任务
- 实现邮件发送功能
4. 模板设计
- 基础模板(导航栏、页脚)
- 昨日记录页面
- 家庭事项页面
- 今日计划页面
- 报告页面
- 系统配置页面
- PDF报告模板
5. 日志配置
- 使用loguru配置日志
- 记录关键操作和错误信息
运行方式
-
安装依赖:
pip install -r requirements.txt -
启动Redis服务:
redis-server -
数据库迁移:
python manage.py migrate -
启动Django开发服务器:
python manage.py runserver -
启动Celery worker:
celery -A diary_family worker --loglevel=info -
启动Celery beat:
celery -A diary_family beat --loglevel=info -
访问系统:
- 浏览器打开 http://localhost:8000
- 支持移动端访问
系统特点
- 轻量化:使用SQLite,部署简单
- 低门槛:界面简洁,易于使用
- 生活化:专注家庭场景
- 个性化:支持自定义记录和计划
- 文件支持:支持上传多种格式文件
- 可视化:提供数据统计图表
- 响应式:适配移动端和桌面端
- PDF报告:支持生成PDF格式报告
- 定时邮件:自动发送报告到指定邮箱
预期效果
用户可以通过手机或电脑轻松完成:
- 记录昨日阅读内容和感悟,可上传相关文件
- 管理家庭事项
- 生成并查看今日计划
- 查看自动生成的可视化报告,支持PDF下载
- 配置系统参数,设置邮件发送
- 每日自动收到包含PDF报告的邮件
系统设计简洁易用,适合家庭日常使用,注重生活化和个性化体验。