基于Python+Flask+MySQL的校园二手交易智能推荐系统
本项目是一个基于Python技术栈构建的校园跳蚤市场智能推荐平台,集成了多种推荐算法,包括协同过滤、内容推荐和混合推荐,旨在为校园用户提供个性化的二手商品推荐服务。
- 用户注册、登录、个人中心管理
- 商品发布、浏览、搜索
- 个性化商品推荐
- 商品点赞、收藏、联系卖家
- 交易记录管理
- 协同过滤推荐算法
- 基于内容的推荐算法
- 混合推荐策略
- 冷启动问题处理
- 推荐效果评估
- 用户管理
- 商品管理
- 分类管理
- 数据统计分析
- 推荐效果监控
- Python 3.8+: 主要开发语言
- Flask 2.3.3: Web框架
- Flask-SQLAlchemy: ORM框架
- Flask-Login: 用户认证
- MySQL 8.0: 主数据库
- Redis: 缓存和会话存储
- Scikit-learn: 机器学习库
- Surprise: 推荐系统库
- Pandas: 数据处理
- NumPy: 数值计算
- HTML5/CSS3/JavaScript: 基础前端技术
- Bootstrap 5: UI框架
- Font Awesome: 图标库
- jQuery: JavaScript库
- Gunicorn: WSGI服务器
- Nginx: Web服务器(可选)
- Docker: 容器化部署(可选)
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端展示层 │ │ 应用服务层 │ │ 数据存储层 │
│ │ │ │ │ │
│ • HTML/CSS/JS │◄──►│ • Flask应用 │◄──►│ • MySQL数据库 │
│ • Bootstrap │ │ • RESTful API │ │ • Redis缓存 │
│ • 响应式设计 │ │ • 业务逻辑 │ │ • 文件存储 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌─────────────────┐
│ 推荐算法层 │
│ │
│ • 协同过滤 │
│ • 内容推荐 │
│ • 混合推荐 │
└─────────────────┘
- Python 3.8+
- MySQL 8.0+
- Redis 4.0+
- 操作系统: Linux/Windows/macOS
- 克隆项目
git clone <repository-url>
cd GraduationProject- 配置数据库
# 创建数据库
mysql -u root -p -e "CREATE DATABASE campus_market CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"- 配置环境变量
# 复制环境配置文件
cp .env.example .env
# 编辑配置文件,设置数据库连接信息
vim .env- 一键启动
# 运行启动脚本
./start.sh- 访问应用
- 主应用: http://localhost:8000
- 管理后台: http://localhost:8080/admin
- 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows- 安装依赖
pip install -r requirements.txt- 初始化数据库
python app.py init-db- 创建管理员用户
python app.py create-admin- 启动应用
python app.py在 .env 文件中配置数据库连接:
DB_HOST=localhost
DB_PORT=5081
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=campus_marketREDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0SECRET_KEY=your-secret-key
MAIN_PORT=8000
ADMIN_PORT=8080GET /api/items- 获取商品列表GET /api/items/{id}- 获取商品详情POST /api/items- 创建商品PUT /api/items/{id}- 更新商品POST /api/items/{id}/like- 点赞商品POST /api/items/{id}/contact- 联系卖家
GET /api/recommendations- 获取推荐商品POST /api/recommendations/{id}/click- 记录推荐点击
GET /api/users/profile- 获取用户资料PUT /api/users/profile- 更新用户资料GET /api/users/stats- 获取用户统计
基于用户行为数据,找到相似用户,推荐相似用户喜欢的商品。
优点: 能够发现用户潜在兴趣 缺点: 存在冷启动问题
分析商品特征和用户历史行为,推荐相似特征的商品。
优点: 推荐结果可解释性强 缺点: 推荐多样性不足
结合协同过滤和内容推荐,通过权重融合提高推荐效果。
优点: 综合多种算法优势 缺点: 计算复杂度较高
- id: 用户ID
- username: 用户名
- email: 邮箱
- password_hash: 密码哈希
- interests: 兴趣标签
- created_at: 创建时间
- id: 商品ID
- title: 商品标题
- description: 商品描述
- price: 价格
- category_id: 分类ID
- seller_id: 卖家ID
- images: 商品图片
- tags: 商品标签
- status: 商品状态
- id: 行为ID
- user_id: 用户ID
- item_id: 商品ID
- behavior_type: 行为类型
- created_at: 行为时间
- id: 推荐ID
- user_id: 用户ID
- item_id: 商品ID
- algorithm_type: 算法类型
- score: 推荐分数
- is_clicked: 是否点击
- Redis缓存推荐结果
- 缓存热门商品数据
- 缓存用户画像信息
- 添加适当的索引
- 分页查询优化
- 查询语句优化
- 图片懒加载
- 静态资源压缩
- CDN加速
- 应用日志:
logs/app.log - 错误日志:
logs/error.log - 访问日志:
logs/access.log
- 推荐算法性能监控
- 数据库查询性能监控
- 用户行为分析
GraduationProject/
├── app/ # 应用主目录
│ ├── models/ # 数据模型
│ ├── views/ # 视图控制器
│ ├── services/ # 业务逻辑服务
│ ├── static/ # 静态文件
│ └── templates/ # 模板文件
├── config.py # 配置文件
├── app.py # 应用入口
├── requirements.txt # 依赖包
├── start.sh # 启动脚本
└── README.md # 项目说明
- 安装开发依赖
- 配置开发数据库
- 启用调试模式
- 设置日志级别
- 遵循PEP 8编码规范
- 使用类型注解
- 编写单元测试
- 添加文档字符串
A: 删除数据库后重新运行 python app.py init-db
A: 在 app/services/recommendation_service.py 中修改算法逻辑
A: 在管理后台的分类管理页面添加,或直接操作数据库
A: 调整算法权重、增加用户行为数据、优化特征工程
- Fork 项目
- 创建功能分支
- 提交代码
- 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 项目作者: [您的姓名]
- 邮箱: [您的邮箱]
- 项目地址: [项目仓库地址]
- 初始版本发布
- 实现基础功能
- 集成推荐算法
- 完成管理后台
注意: 本项目仅用于学习和研究目的,请勿用于商业用途。