# 🛍️ Python Flask 电商系统 🛍️
**一个功能完善、技术栈现代、可直接部署的线上电商平台毕业设计项目。**

---
## ✨ 项目简介
本项目是一个基于 **Python + Flask** 构建的全功能线上电商系统。它涵盖了从用户注册登录、商品浏览、购物车、下单支付到后台管理的全流程。项目架构清晰,代码结构规范,并集成了**腾讯云COS**、**CDN**等云服务,最终可通过 **Docker** 实现快速、标准化的部署。
## 🚀 技术栈概览
| 分类 | 技术 | 描述 |
| :--- | :--- | :--- |
| 🖥️ **后端** | `Python`, `Flask`, `SQLAlchemy` | 核心开发语言、Web框架与ORM |
| 🗃️ **数据库** | `MySQL` | 持久化数据存储 |
| 🎨 **前端** | `HTML`, `CSS`, `JavaScript`, `Bootstrap` | 页面构建、样式与交互逻辑 |
| ☁️ **云服务** | `腾讯云COS`, `腾讯云CDN`, `微信支付` | 对象存储、内容分发网络与支付服务 |
| 🐳 **部署** | `Docker`, `Nginx` | 容器化部署与反向代理 |
| ⚙️ **工具** | `Flask-Login`, `Flask-WTF`, `Flask-Mail` | 用户认证、表单处理、邮件服务 |
## 🌟 系统核心功能
🛍️ 用户端功能 (点击展开)
- **👤 用户中心**
- 手机/邮箱注册登录,支持短信/邮箱验证码
- 微信授权登录(可选)
- 个人信息编辑(昵称、头像、性别等)
- 头像上传至腾讯云COS
- 收货地址管理(增删改查、设为默认)
- 我的收藏夹 & 浏览历史
- **🛒 购物流程**
- 多级商品分类导航
- 商品列表(分页、排序、筛选、搜索)
- 商品详情页(轮播图、规格选择、用户评价)
- 购物车(添加、修改数量、删除、结算)
- 未登录用户购物车(`localStorage` 支持)
- **💳 订单与支付**
- 创建订单,填写备注
- **微信支付**(PC端扫码、移动端JSAPI)
- 订单状态跟踪(待支付、待发货、待收货、待评价...)
- 查看订单详情与物流信息
- 取消订单、申请退款、确认收货
- **✍️ 评价系统**
- 对已完成订单的商品进行评价(评分、文字、图片)
- 匿名评价选项
🔧 管理后台功能 (点击展开)
- **📊 数据看板 (Dashboard)**
- 销售额、订单量、用户增长等核心指标可视化
- **📦 商品管理**
- 商品分类的增删改查
- 商品信息管理(上架/下架、编辑、库存、价格)
- 商品规格与属性管理
- **📋 订单管理**
- 按状态筛选和搜索订单
- 查看订单详情
- 执行发货操作(填写物流信息)
- 处理用户退款申请
- **👥 用户管理**
- 查看用户列表
- 禁用/启用用户账户
- **⚙️ 系统设置**
- 网站基本信息配置
- 支付接口与云存储配置
## 📂 项目结构
```
Online_shopping_platform/
├── app/ # 核心应用目录
│ ├── models/ # 📦 数据模型 (ORM)
│ ├── views/ # 👁️ 视图函数 (Controllers)
│ ├── templates/ # 📄 HTML模板
│ ├── static/ # 🎨 静态资源 (CSS, JS, Images)
│ ├── utils/ # 🛠️ 工具模块 (支付, COS, 邮件等)
│ ├── forms.py # 📝 表单定义
│ └── __init__.py # 🚀 应用工厂函数
├── config/ # ⚙️ 配置文件
├── docker/ # 🐳 Docker 相关配置
├── logs/ # 📜 日志文件
├── tests/ # 🧪 测试用例
├── requirements.txt # 📦 Python 依赖
├── run.py # ▶️ 应用启动脚本
└── README.md # 📖 你正在阅读的文件
```
## 🗄️ 数据库设计
项目数据库设计遵循电商业务逻辑,结构清晰,关系明确。
查看核心数据表 (点击展开)
| 表名 | 用途 |
| :--- | :--- |
| `users` | 存储用户信息 |
| `user_addresses` | 用户收货地址 |
| `products` | 商品基本信息 (SPU) |
| `product_inventory` | 商品库存单元 (SKU) |
| `categories` | 商品分类 |
| `cart` | 购物车 |
| `orders` | 订单主表 |
| `order_items` | 订单详情表 |
| `payments` | 支付记录 |
| `reviews` | 商品评价 |
| `admin_users` | 后台管理员 |
> 完整的 `CREATE TABLE` SQL语句已在项目文件中提供,包含了详细的字段、索引和外键设计。
## 🛠️ 本地运行与部署
### 1. 环境准备
- 克隆项目到本地
```bash
git clone
cd Online_shopping_platform
```
- 创建并激活Python虚拟环境
```bash
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
```
- 安装项目依赖
```bash
pip install -r requirements.txt
```
### 2. 配置
- 复制 `.env.example` 文件为 `.env` (如果提供)。
- 根据提示修改 `config/` 目录下的配置文件,或设置环境变量,填入你的:
- **数据库连接信息**
- **Flask `SECRET_KEY`**
- **腾讯云 `COS` 和 `CDN` 配置**
- **微信支付商户信息**
- **邮件服务器配置**
### 3. 初始化
- 初始化数据库表结构
```bash
# 在Flask应用上下文中执行
flask db init # 如果使用Flask-Migrate
flask db migrate
flask db upgrade
# 或者使用自定义脚本
python -c "from app import create_app, db; app = create_app(); app.app_context().push(); db.create_all()"
```
- 创建第一个管理员账户
```bash
python create_admin.py
```
### 4. 启动!
- 运行开发服务器
```bash
python run.py
```
- 🎉 恭喜!现在可以访问 `http://127.0.0.1:5000` 查看你的电商网站了。
### 5. Docker 部署 (推荐)
- 确保已安装 Docker 和 Docker Compose。
- 在项目根目录下执行:
```bash
docker-compose up --build -d
```
- 服务将在后台启动,并通过 Nginx 代理对外提供服务。
## 💡 项目亮点
- **🛡️ 安全性**: 全面考虑了常见的Web安全问题,如 `SQL注入`、`XSS`、`CSRF`,并进行了有效防护。
- **⚡ 性能优化**: 集成了 `CDN加速`、`图片懒加载`、`数据库查询优化` 等多种性能优化手段。
- **📱 响应式设计**: 基于 Bootstrap 框架,完美适配PC和移动设备,提供一致的用户体验。
- **🧩 模块化设计**: 代码结构清晰,功能高度解耦,易于维护和二次开发。
- **☁️ 云原生支持**: 无缝集成云存储和CDN,为高并发和大数据量场景打下基础。
---
本项目为毕业设计作品,旨在展示一个完整的Web应用开发流程。
作者:林金兴 | 指导老师:[指导老师姓名]