# 🛍️ Python Flask 电商系统 🛍️ **一个功能完善、技术栈现代、可直接部署的线上电商平台毕业设计项目。** ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?style=for-the-badge&logo=python)![Flask](https://img.shields.io/badge/Flask-2.x-black?style=for-the-badge&logo=flask)![MySQL](https://img.shields.io/badge/MySQL-5.7%2B-orange?style=for-the-badge&logo=mysql)![Docker](https://img.shields.io/badge/Docker-Ready-blue?style=for-the-badge&logo=docker)![Tencent Cloud](https://img.shields.io/badge/Tencent_Cloud-COS_%26_CDN-red?style=for-the-badge&logo=tencent-cloud)
--- ## ✨ 项目简介 本项目是一个基于 **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应用开发流程。

作者:林金兴 | 指导老师:[指导老师姓名]