2025-07-09 05:22:28 +08:00
2025-07-09 05:22:28 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00
2025-07-04 19:07:35 +08:00

🛍️ Python Flask 电商系统 🛍️

一个功能完善、技术栈现代、可直接部署的线上电商平台毕业设计项目。

PythonFlaskMySQLDockerTencent Cloud


项目简介

本项目是一个基于 Python + Flask 构建的全功能线上电商系统。它涵盖了从用户注册登录、商品浏览、购物车、下单支付到后台管理的全流程。项目架构清晰,代码结构规范,并集成了腾讯云COSCDN等云服务,最终可通过 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. 环境准备

  • 克隆项目到本地
    git clone <your-repository-url>
    cd Online_shopping_platform
    
  • 创建并激活Python虚拟环境
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    # venv\Scripts\activate   # Windows
    
  • 安装项目依赖
    pip install -r requirements.txt
    

2. 配置

  • 复制 .env.example 文件为 .env (如果提供)。
  • 根据提示修改 config/ 目录下的配置文件,或设置环境变量,填入你的:
    • 数据库连接信息
    • Flask SECRET_KEY
    • 腾讯云 COSCDN 配置
    • 微信支付商户信息
    • 邮件服务器配置

3. 初始化

  • 初始化数据库表结构
    # 在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()"
    
  • 创建第一个管理员账户
    python create_admin.py
    

4. 启动!

  • 运行开发服务器
    python run.py
    
  • 🎉 恭喜!现在可以访问 http://127.0.0.1:5000 查看你的电商网站了。

5. Docker 部署 (推荐)

  • 确保已安装 Docker 和 Docker Compose。
  • 在项目根目录下执行:
    docker-compose up --build -d
    
  • 服务将在后台启动,并通过 Nginx 代理对外提供服务。

💡 项目亮点

  • 🛡️ 安全性: 全面考虑了常见的Web安全问题SQL注入XSSCSRF,并进行了有效防护。
  • 性能优化: 集成了 CDN加速图片懒加载数据库查询优化 等多种性能优化手段。
  • 📱 响应式设计: 基于 Bootstrap 框架完美适配PC和移动设备提供一致的用户体验。
  • 🧩 模块化设计: 代码结构清晰,功能高度解耦,易于维护和二次开发。
  • ☁️ 云原生支持: 无缝集成云存储和CDN为高并发和大数据量场景打下基础。

本项目为毕业设计作品旨在展示一个完整的Web应用开发流程。

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

Description
No description provided
Readme 666 KiB
Languages
HTML 41.5%
Python 29.6%
JavaScript 18.8%
CSS 9.7%
Shell 0.2%
Other 0.2%