返回作品

基于大数据的农产品电商平台的设计与实现

创建于 2026 年 4 月 7 日

标签
  • Flask
  • SQLite
  • Pandas
  • NumPy
  • scikit-learn
  • Chart.js
  • Prometheus

项目介绍

这是一个面向毕业设计场景落地的农产品电商平台演示系统。项目的出发点是:农产品交易不只是”买和卖”,围绕商品流转沉淀下来的订单、评价、溯源和用户行为数据,同样值得被清洗、分析和建模。因此系统没有停留在电商 CRUD 的层面,而是把购物流程、大数据分析、智能预测、个性化推荐和运维监控整合进同一个 Flask 应用里,形成”数据采集—处理—分析—应用”的完整链路。

系统内置于演示库中的业务数据由 seed_data.py 以固定随机种子程序化构造,覆盖用户、商品、溯源、订单、订单明细和评价六类对象,共 7 名用户、12 件商品、190 条订单、384 条订单明细和 242 条评价,订单时间连续分布约 50 天,为价格趋势、销量走势和热度预测提供了稳定的时序基础。项目配套 README、快速启动说明、冒烟测试与答辩截图指引,开箱即可用于功能展示、论文截图和答辩演示。

项目架构

项目采用轻量级单体结构:Flask 提供 Web 路由与视图,SQLite 承载全部业务数据,Jinja2 渲染服务端模板,Chart.js 通过 CDN 提供前端图表,Prometheus 客户端负责暴露指标。代码按 app.py(入口)、launcher.py(启动器)、src/webapp.py(路由与业务)、src/database.py(建表与种子数据)、src/security.py(密码哈希)分层组织,数据分析、预测、推荐逻辑则分别收敛在 src/services/ 下的 analytics.pyprediction.pyrecommender.py 三个服务模块中。

页面体系按角色和场景划分:面向消费者的首页、商品列表、商品详情、购物车、订单页,面向经营分析的”农产品经营分析驾驶舱”,面向模型的”智能预测中心”,面向运维的”系统监控面板”,以及后台的商品、订单、评价管理页面。分析结果通过内存缓存(lru_cache)复用,管理端发生写操作后主动清空缓存,保证图表与数据一致。

核心功能

  • 购物与订单链路:支持登录(pbkdf2:sha256 密码哈希,旧版 scrypt 哈希登录时自动升级)、按水果/蔬菜/粮油/茶饮分类浏览、购物车数量按库存上限自动调整、结算时以 BEGIN IMMEDIATE 事务原子扣减库存防止超卖,以及订单状态跟踪。
  • 大数据分析与可视化Pandas 统一装载六张业务表,执行 to_numeric 数值转换、缺失值中位数填充、范围约束(评分 0-5、情感值 -11、冷链温度 -3040℃)与时间对齐;驾驶舱以 Chart.js 呈现市场概览、近 10 日价格趋势、区域销量 Top6、品类占比、地区-品类热力格,并输出热销商品排行。
  • 数据挖掘:基于订单共现关系计算支持度与置信度,挖掘搭配购买组合;基于订单次数、消费金额、平均购买件数做简化 K-Means 聚类,将用户划分为高价值复购型、家庭囤货型与稳定消费型群体;结合农残指标与库存给出”低库存预警 / 冷链稳定”溯源风险标签。
  • 智能预测中心:随机森林(120 棵树)依据甜度、新鲜度、有机评分与价格预测口味标签并输出置信度;StandardScaler + RBF SVM 依据图片亮度、纹理、色彩与商品属性评估质量等级,支持在商品详情页上传图片实时评估;纯 NumPy 手写的轻量级 LSTM(滑动窗口 + 归一化 + 梯度裁剪)按品类预测未来 7 天受欢迎度走势。
  • 个性化推荐:综合商品基础热度、用户偏好品类、地区特征、历史共购关系和基于用户-商品交互矩阵的协同过滤加权生成推荐,并以”符合你的偏好 / 协同过滤推荐 / 热销推荐”给出可解释理由。
  • 运维监控/metrics 接口暴露请求量、延迟、下单、登录、后台写操作等 Prometheus 指标;监控面板汇总运行时指标与存储规模(用户、商品、订单、评价数、低库存商品、数据库体积)。

功能截图

暂无运行截图。

快速上手

项目要求 Python 3.11+,推荐使用 Anaconda 或 uv 管理环境。macOS / Linux 可直接运行 bash start.sh;手动启动时先创建虚拟环境并安装依赖(pip install -r requirements.txtuv sync),随后执行 python launcher.py 即可。首次启动会自动生成演示数据库 data/platform.db 并尝试打开浏览器,服务默认监听 http://127.0.0.1:5050

演示账号为管理员 admin / admin123、普通用户 buyer01 / buyer123。想恢复初始演示数据,删除 data/platform.db 后重启即可;图表依赖 Chart.js CDN,首次访问需联网。运行 python -m unittest discover tests 可执行冒烟测试,覆盖首页、驾驶舱、预测中心、监控面板、指标接口、登录哈希升级、超卖拦截和后台表单校验等关键路径。

总结

这个项目把电商交易、数据治理、分析挖掘、机器学习预测和运维监控放在一个可运行的单体应用里,验证了”分析结果回哺业务页面”的完整闭环:预测结果呈现在商品详情与预测中心,推荐结果出现在首页并带理由标签,监控指标支撑系统运维。对想了解”如何在轻量级 Python 技术栈中组合电商业务与数据智能”的读者来说,它是一个结构清晰、可直接运行与改写的参考实现。