feat: 添加CSV数据生成和导入功能

新增generate_import_csv.py脚本用于生成和导入测试数据
更新README.md添加CSV数据导入指南
生成3个CSV文件并实现自动导入功能
This commit is contained in:
2026-01-08 17:58:04 +08:00
parent 0982067171
commit 5b32692e66
6 changed files with 346 additions and 0 deletions

View File

@@ -143,6 +143,66 @@ python manage.py runserver
python manage.py migrate
```
## CSV数据导入指南
### 生成CSV文件
项目包含一个`generate_import_csv.py`脚本用于生成符合数据库表结构的CSV文件并导入数据。
1. 生成CSV文件
```bash
python generate_import_csv.py
```
2. 生成的CSV文件
- `reading_type.csv` - 阅读记录类型
- `insight_record.csv` - 感悟记录
- `reading_record.csv` - 阅读记录
### CSV文件格式说明
#### reading_type.csv阅读记录类型
| 字段名 | 类型 | 说明 |
|-------|------|------|
| name | 字符串 | 阅读类型名称(如:书籍、文章、论文等) |
#### insight_record.csv感悟记录
| 字段名 | 类型 | 说明 |
|-------|------|------|
| date | 日期 | 记录日期格式YYYY-MM-DD |
| content | 文本 | 感悟内容 |
#### reading_record.csv阅读记录
| 字段名 | 类型 | 说明 |
|-------|------|------|
| date | 日期 | 记录日期格式YYYY-MM-DD |
| type_id | 整数 | 阅读类型ID关联reading_type表的id字段 |
| title | 字符串 | 阅读标题 |
| source | 字符串 | 阅读来源 |
| progress | 字符串 | 阅读进度(如:已完成、进行中、未开始) |
| note | 文本 | 阅读笔记 |
### 自定义CSV数据
你可以手动编辑生成的CSV文件添加或修改数据然后再次运行导入脚本将数据导入到数据库。
### 数据导入
脚本会自动将CSV数据导入到数据库中导入流程
1. 清空ReadingType表的现有数据避免类型ID冲突
2. 导入ReadingType数据
3. 导入InsightRecord数据
4. 导入ReadingRecord数据
### 验证导入结果
可以使用Django shell查询数据库验证数据是否正确导入
```bash
python -c "import os; os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'diary_family.settings'); import django; django.setup(); from core.models import ReadingType, InsightRecord, ReadingRecord; print('ReadingType数量:', ReadingType.objects.count()); print('InsightRecord数量:', InsightRecord.objects.count()); print('ReadingRecord数量:', ReadingRecord.objects.count()); print('ReadingType数据:', [rt.name for rt in ReadingType.objects.all()])"
```
## 生产部署
### 使用Gunicorn + Nginx