毕设网毕设选题大全 · 成品源码

基于 Django 的中小学生课外读物推荐系统设计与实现

项目编号 007 · 更新 2026-11-03
PythonDjangoMySQLNumPyBootstrap 5openpyxl

获取方式

两个渠道都可以买:面包多(在线支付、自动发货)或闲鱼;也可以加微信咨询。

面包多购买 去 B 站看演示

咨询微信:csbysj2020 / ACE2487(备注 BS)

项目简介

面向家长与学生的课外读物推荐系统:为每个孩子建立档案(年龄 / 年级 / 阅读水平 / 兴趣标签),按「适读年龄 + 兴趣标签 + 相似小读者」三重匹配生成推荐书单,并给出可解释的推荐理由;配套书架、阅读打卡、评价、分级书单与阅读统计。

演示视频

视频也可在 B 站视频页 观看

运行环境

编程语言Python 3.8 及以上
Web 框架Django 4.2
数据库MySQL 5.7 及以上
推荐算法NumPy(评分矩阵与余弦相似度)
前端Bootstrap 5(已内置本地文件,离线可用,书封为纯 CSS 色块)
报表导出openpyxl
操作系统Windows / macOS / Linux
启动方式双击一键脚本,或 python manage.py runserver

功能模块

  • 用户与角色:家长 / 管理员,菜单与操作按角色控制
  • 孩子档案:生日(自动算年龄)、年级、阅读水平、兴趣标签 —— 推荐的关键输入
  • 推荐引擎:内容匹配(适龄 0.5 + 兴趣 0.3 + 常读类型 0.2)与基于物品的协同过滤按 0.6 / 0.4 混合加权
  • 推荐理由可解释:适龄区间 / 命中兴趣 / 读过《某某》的孩子也喜欢 / 编辑书单推荐
  • 冷启动处理:孩子无评价时权重自动让给内容匹配;新书无评分也能凭内容匹配被推荐
  • 发现好书:关键词 / 分类 / 适龄区间 / 兴趣标签筛选,支持热度、评分、最新、适龄排序
  • 阅读闭环:书架(想读 / 在读 / 读完)、阅读打卡(时长 / 页数 / 读后小记)、1–5 星评价
  • 分级书单与阅读统计:按年龄段编排书单;分类分布、适龄供需、热门图书、活跃小读者,一键导出 Excel

交付内容

  • 完整源码(已跑通,含 96 种图书 / 110 个孩子档案 / 约 960 条打卡演示数据)
  • 毕业设计任务书(Word)
  • 开题报告(Word)
  • 毕业论文(Word,七章制,含推荐算法设计章节与图表)
  • 系统使用与二次开发说明(Word + md)
  • 10 张系统运行截图

最终成品目录结构

下面是交付包里的真实目录,共 104 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。

根目录:007-基于Django的中小学生课外读物推荐系统

界面截图

点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)

中小学生课外读物推荐系统
系统首页
中小学生课外读物推荐系统
家长工作台
中小学生课外读物推荐系统
发现好书(多条件筛选)
中小学生课外读物推荐系统
图书详情与评价
中小学生课外读物推荐系统
个性化推荐与推荐理由
中小学生课外读物推荐系统
孩子档案与阅读记录
中小学生课外读物推荐系统
我的书架
中小学生课外读物推荐系统
分级书单
中小学生课外读物推荐系统
分类与兴趣标签
中小学生课外读物推荐系统
阅读统计

文档预览

交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:

毕业论文(七章制)
毕业论文(七章制)
毕业设计任务书
毕业设计任务书
开题报告
开题报告

常见问题

项目能直接跑起来吗?

能。源码里已带数据库与演示数据,安装依赖后双击一键脚本或按说明启动即可。

推荐是怎么算的?

综合分 = 0.6 × 内容匹配 + 0.4 × 协同过滤。内容匹配由适龄分(0.5)、兴趣命中(0.3)与常读类型(0.2)组成;协同过滤是基于物品的余弦相似度(评分去均值后计算)。

怎么保证不给低年级推难书?

每本书都标注适读年龄区间,适龄分作为内容匹配里权重最高的一项;年龄越界会按距离衰减,因此高年级读物不会排在前面。

新用户打开会不会没书看?

不会。孩子还没有评价数据时会自动进入冷启动模式:把权重让给内容匹配,保证仍有推荐结果,并在页面上明确提示。

推荐理由能改吗?

能。理由由「适龄 X-Y 岁」「命中兴趣:科学」「读过《某某》的孩子也喜欢」「编辑书单推荐」等片段组成,改 recommend/engine.py 中的 _content_reasons() 即可。

数据是爬来的吗?

不是。书目是业务录入数据(演示用常见童书书名),孩子档案、打卡与评价由 seed_data 程序生成(固定随机种子,可复现),不对应任何真实个人。

书封为什么是色块?

为让交付包体积小、离线可用、无需管理图片资源,书封用纯 CSS 绘制(6 套配色),想换真实封面可给 Book 加 ImageField。

有几种系统角色?

两种:家长(学生)与管理员;文档里给了新增角色(如教师)的做法。

💬 在线咨询9:00–23:00
加微信咨询

备注 BS

csbysj2020ACE2487

也可在 B 站 看演示