django-vue3-admin-backend/在线阅读功能部署说明.md
2025-10-23 01:10:28 +08:00

3.7 KiB
Raw Blame History

在线阅读功能部署说明

后端部署步骤

1. 数据库迁移

在线阅读功能添加了以下数据库变更:

CrudBookModel 模型新增字段:

  • file: 电子书文件字段FileField
  • file_type: 文件类型字段CharField

新增 ReadingProgress 模型:

  • user: 用户外键
  • book: 图书外键
  • location: 阅读位置CFI格式
  • progress: 阅读进度百分比

执行迁移命令:

cd django-vue3-admin-backend

# 创建迁移文件
python manage.py makemigrations crud_book

# 执行迁移
python manage.py migrate crud_book

2. 新增API接口

图书文件接口:

  • GET /api/CrudBookModelViewSet/{id}/file/ - 获取图书文件信息

阅读进度接口:

  • POST /api/reading-progress/ - 保存/更新阅读进度
  • GET /api/reading-progress/by_book/?book_id={id} - 获取指定图书的阅读进度
  • GET /api/reading-progress/ - 获取当前用户所有阅读进度

3. 配置检查

确保 settings.py 中已配置:

# 媒体文件配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

确保主 urls.py 中已配置静态文件服务:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... 其他路由
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

前端部署步骤

1. 安装依赖

cd django-vue3-admin-web

# 使用yarn安装推荐
yarn install

# 或使用npm
npm install --legacy-peer-deps

2. 配置检查

已添加的文件:

  • src/views/book/reader/index.vue - 阅读器组件
  • src/api/book/reader.ts - API接口定义
  • src/router/route.ts - 路由配置(已添加 /book/reader

已修改的文件:

  • src/views/crud_book/CrudBookModelViewSet/crud.tsx - 添加"在线阅读"按钮

3. 启动开发服务器

yarn dev
# 或
npm run dev

测试步骤

1. 上传测试文件

  1. 准备一个EPUB格式的电子书文件
  2. 在图书管理页面,编辑或新增图书
  3. 上传EPUB文件到"电子书文件"字段
  4. 保存图书信息

2. 测试在线阅读

  1. 在图书列表中找到已上传文件的图书
  2. 点击"在线阅读"按钮
  3. 验证阅读器是否正常加载
  4. 测试功能:
    • 翻页(上一页/下一页)
    • 目录导航
    • 字体大小调整
    • 阅读进度保存

3. 测试阅读进度

  1. 阅读几页后关闭阅读器
  2. 重新打开同一本书
  3. 验证是否自动跳转到上次阅读位置

常见问题

Q: 阅读器无法加载图书?

检查项:

  1. 确认EPUB文件已正确上传
  2. 检查后端MEDIA配置是否正确
  3. 查看浏览器控制台错误信息
  4. 确认API接口返回正确的文件URL

Q: 阅读进度无法保存?

检查项:

  1. 确认用户已登录
  2. 检查数据库迁移是否执行成功
  3. 查看后端日志是否有错误
  4. 确认ReadingProgress模型已创建

Q: 前端启动失败?

解决方案:

  1. 删除 node_modulespackage-lock.json
  2. 使用 yarn install 重新安装依赖
  3. 如果使用npm添加 --legacy-peer-deps 参数

功能特性

已实现:

  • EPUB格式在线阅读
  • 目录导航
  • 阅读进度记录和恢复
  • 字体大小调整
  • 翻页控制
  • 进度条显示

🚧 待实现:

  • 翻译功能需集成翻译API
  • 书签功能
  • 笔记和高亮
  • 夜间模式
  • PDF格式支持

更新日志

2025-10-22

  • 添加图书文件字段file, file_type
  • 创建阅读进度模型ReadingProgress
  • 实现文件获取API
  • 实现阅读进度保存/获取API
  • 前端添加阅读器路由
  • 图书列表添加"在线阅读"按钮
  • 完成前后端集成