211 lines
7.4 KiB
Markdown
211 lines
7.4 KiB
Markdown
|
||
<div align="center">
|
||
|
||
# 🛍️ Python Flask 电商系统 🛍️
|
||
|
||
**一个功能完善、技术栈现代、可直接部署的线上电商平台毕业设计项目。**
|
||
|
||

|
||
|
||
</div>
|
||
|
||
---
|
||
|
||
## ✨ 项目简介
|
||
|
||
本项目是一个基于 **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` | 用户认证、表单处理、邮件服务 |
|
||
|
||
## 🌟 系统核心功能
|
||
|
||
<details>
|
||
<summary><b>🛍️ 用户端功能 (点击展开)</b></summary>
|
||
|
||
- **👤 用户中心**
|
||
- 手机/邮箱注册登录,支持短信/邮箱验证码
|
||
- 微信授权登录(可选)
|
||
- 个人信息编辑(昵称、头像、性别等)
|
||
- 头像上传至腾讯云COS
|
||
- 收货地址管理(增删改查、设为默认)
|
||
- 我的收藏夹 & 浏览历史
|
||
|
||
- **🛒 购物流程**
|
||
- 多级商品分类导航
|
||
- 商品列表(分页、排序、筛选、搜索)
|
||
- 商品详情页(轮播图、规格选择、用户评价)
|
||
- 购物车(添加、修改数量、删除、结算)
|
||
- 未登录用户购物车(`localStorage` 支持)
|
||
|
||
- **💳 订单与支付**
|
||
- 创建订单,填写备注
|
||
- **微信支付**(PC端扫码、移动端JSAPI)
|
||
- 订单状态跟踪(待支付、待发货、待收货、待评价...)
|
||
- 查看订单详情与物流信息
|
||
- 取消订单、申请退款、确认收货
|
||
|
||
- **✍️ 评价系统**
|
||
- 对已完成订单的商品进行评价(评分、文字、图片)
|
||
- 匿名评价选项
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>🔧 管理后台功能 (点击展开)</b></summary>
|
||
|
||
- **📊 数据看板 (Dashboard)**
|
||
- 销售额、订单量、用户增长等核心指标可视化
|
||
|
||
- **📦 商品管理**
|
||
- 商品分类的增删改查
|
||
- 商品信息管理(上架/下架、编辑、库存、价格)
|
||
- 商品规格与属性管理
|
||
|
||
- **📋 订单管理**
|
||
- 按状态筛选和搜索订单
|
||
- 查看订单详情
|
||
- 执行发货操作(填写物流信息)
|
||
- 处理用户退款申请
|
||
|
||
- **👥 用户管理**
|
||
- 查看用户列表
|
||
- 禁用/启用用户账户
|
||
|
||
- **⚙️ 系统设置**
|
||
- 网站基本信息配置
|
||
- 支付接口与云存储配置
|
||
|
||
</details>
|
||
|
||
## 📂 项目结构
|
||
|
||
```
|
||
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 # 📖 你正在阅读的文件
|
||
```
|
||
|
||
## 🗄️ 数据库设计
|
||
|
||
项目数据库设计遵循电商业务逻辑,结构清晰,关系明确。
|
||
|
||
<details>
|
||
<summary><b>查看核心数据表 (点击展开)</b></summary>
|
||
|
||
| 表名 | 用途 |
|
||
| :--- | :--- |
|
||
| `users` | 存储用户信息 |
|
||
| `user_addresses` | 用户收货地址 |
|
||
| `products` | 商品基本信息 (SPU) |
|
||
| `product_inventory` | 商品库存单元 (SKU) |
|
||
| `categories` | 商品分类 |
|
||
| `cart` | 购物车 |
|
||
| `orders` | 订单主表 |
|
||
| `order_items` | 订单详情表 |
|
||
| `payments` | 支付记录 |
|
||
| `reviews` | 商品评价 |
|
||
| `admin_users` | 后台管理员 |
|
||
|
||
</details>
|
||
|
||
> 完整的 `CREATE TABLE` SQL语句已在项目文件中提供,包含了详细的字段、索引和外键设计。
|
||
|
||
## 🛠️ 本地运行与部署
|
||
|
||
### 1. 环境准备
|
||
|
||
- 克隆项目到本地
|
||
```bash
|
||
git clone <your-repository-url>
|
||
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,为高并发和大数据量场景打下基础。
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
<p><em>本项目为毕业设计作品,旨在展示一个完整的Web应用开发流程。</em></p>
|
||
<p>作者:林金兴 | 指导老师:[指导老师姓名]</p>
|
||
</div> |