本文不含一行代码。
但它决定你能不能跟完这个项目。
建议先 点赞 + 收藏 + 关注,防止追更走丢。后面回来看一次:你的进度条走到哪了、能拿出什么成果、离公网可访问的完整站点还有多远。
一、先说句扎心的:注册登录加增删改查,那不是电商
打开百度搜「Django教程」,你能搜出几百篇。
点开前10篇,绝大多数讲的是:
- 用户表设计
- 注册登录
- 增删改查
- 文件上传
然后?然后就没了。
一个项目撑不过20篇,作者写疲了,读者学到第10篇开始不知道自己在做什么。
注册登录加增删改查,那不是电商。
那只是任何一个Web应用的起点。
真正的电商有它自己的骨头:
- SPU和SKU怎么拆?
- 库存超卖了怎么办?
- 订单30分钟没付钱要不要关?
- 支付回调被重复发了十次,怎么保证只扣一次?
- 优惠券和满减活动能不能叠加?
- 运费怎么按规则分摊?
这些问题答不上来,你搭的就不是电商,而是博客套了件商品外衣。
这个专栏,打算把这副骨头啃完。
二、跟完这个系列,你能得到什么?
一句话:
你将拥有一个公网可访问的真实电商站点,以及一套能复现它的全栈工程能力。
你带到简历上的,不是「熟悉Django」这种空话,而是一个:
- 能截图
- 能演示
- 能跑通
- 能点开公网链接
- 能讲清楚库存、回调、幂等、部署细节
的完整项目。
项目代号:ShopX(星选商城)。
标准B2C单商户电商平台,包含三个端:
| 端 | 技术栈 | 作用 |
|---|---|---|
| 商城前台Portal | Vue 3 + Vite | 逛分类、看详情、选规格、加购物车、下单、支付、看订单 |
| 商家后台Admin | Element Plus | 商品上下架、订单发货、优惠券发放、数据看板 |
| 后端API Backend | Django 5 + DRF | 前后端分离,所有业务逻辑在这里 |
学完这个系列,你将亲手做出:
- 用户:手机号/邮箱注册、图形验证码、密码强度校验、JWT双Token、无感刷新、收货地址三级联动
- 商品:三级分类树、SPU/SKU拆表、规格选项笛卡尔积生成、图集上传、商品状态机
- 搜索:MySQL全文索引起步,后期升级Elasticsearch
- 交易:购物车双态合并、订单号生成、库存并发扣减三方案压测对比、30分钟未支付自动关单
- 支付:抽象层统一多渠道、支付宝沙箱接入、回调签名校验与幂等处理
- 营销:满减/折扣/无门槛券、领取并发防超发、叠加互斥规则
- 内容:多图评价、商家回复、评分聚合
- 后台:商品/订单/优惠券/数据看板
三、这个专栏解决一件很具体的事
很多读者学完Python语法,看过几篇爬虫教程,会写几行Django视图。
但面对一个真实需求------「做一个能上线的商城」------依然无从下手:
- 数据库表该建几张?商品、分类、库存、订单之间是什么关系?
- 前端用Vue还是React?状态管理选Pinia还是Vuex?
- 接口怎么设计才不像屎山?鉴权怎么做才安全?
- 库存并发怎么处理才不会超卖?支付回调怎么写才不怕重复通知?
- 怎么把它部署到公网,让简历上的链接真的能点开?
这一讲不教你任何答案。
但它会告诉你:这个系列里,每一个问题都会在它该出现的课里被讲透。
四、技术选型:每一项都讲取舍,不只列优势
为什么后端用Django,而不是FastAPI?
FastAPI更现代、更快、类型提示更优雅。
但Django在「教学曲线」「生态完整度」「企业招聘面」这三个维度上仍然胜出:
- ORM、Admin、Auth、迁移、缓存、信号、国际化开箱即用
- 读者不用为「项目目录该长什么样」这种基础问题停下来
- 企业JD里Django出现频次远高于FastAPI
我们会用Celery补齐异步能力,那也是Django生态原生的。
为什么前端用Vue 3 + Pinia,而不是React + Redux?
Vue 3组合式API学习曲线平缓,模板语法对零基础友好。
Pinia比Vuex简洁40%,且与TypeScript配合良好。
React + Redux生态更繁荣,但生态繁荣的另一面是「选型疲劳」------你还没开始写,就会被路由库、状态库、UI库、请求库的选择耗尽注意力。
这个系列会有一节专门讲「如果你想用React重写前端应该怎么改」,给React党留出口子。
为什么数据库用MySQL8?
国内就业市场MySQL仍是绝对主流。
InnoDB的行锁机制,是「库存并发扣减三方案对比」的核心教具。
MySQL8的全文索引,对中小规模搜索足够用,后期再上Elasticsearch。
PostgreSQL是更先进的选项,但双数据库并行讲解会让零基础读者注意力分散。所以本专栏全文按 MySQL8落地。
其他技术选型一览
- Python 3.12:最新稳定版,性能与类型注解改进显著
- Django 5.x + DRF 3.1x:Django 5是当前主版本,DRF3.1x与之配套
- Vue 3.4+ + Vite 5 + TypeScript + Pinia 2.x:现代前端四件套
- Element Plus:国内后台最主流的 Vue 3 组件库
- MySQL 8 + Redis 7:经典组合
- Celery + Redis:异步任务与延时任务
- Docker + Docker Compose + Nginx + Gunicorn + GitHub Actions:工程化交付阶段
锁定版本,不升级大版本。
本系列从开始起,所有版本号锁死,避免后面某个依赖升级破坏了API。
五、8个里程碑地图:每完成一格,你都能拿出去炫
| 里程碑 | 此时项目能做什么 | 可展示的成果物 |
|---|---|---|
| M0骨架就绪 | 仓库建立、环境统一、前后端空壳同时跑起来 | GitHub 仓库 + README 路线图 + 启动截图 |
| M1 前端可导航 | 前端全家桶掌握,所有页面用假数据跑通 | 可部署到 GitHub Pages 的高保真电商 Demo |
| M2 前后端首次打通 | 用户注册登录是真接口,连上数据库 | 第一个全栈功能:注册 → 登录 → 拿 JWT → 显示昵称 |
| M3 商品浏览闭环 | 分类、SKU、搜索、购物车、地址全部落地 | 逛分类 → 看详情 → 选规格 → 加购 → 填地址 |
| M4 交易闭环 | 订单、库存并发、支付、优惠券,钱货两清 | 核心卖点成型:下单 → 沙箱支付 → 扣库存 → 用券 |
| M5 内容与运营闭环 | 评价、收藏、后台管理、数据看板 | 后台可管商品/发货,看板有真实图表 |
| M6 架构升级 | Celery、Redis、ES、WebSocket、安全加固 | 接口 P95 从 800ms 降到 100ms 的对比数据 |
| M7 上线交付 | 测试、Docker、CI、生产部署、监控 | 公网可访问的真实站点 + 简历项目描述 |

特别提一句:
M1是心理锚点。
你就能做出一个看起来很厉害的东西,这是熬过枯燥前期最有效的强心针。
M4是全曲线最高潮。
「下单与库存扣减:事务、行锁与超卖问题复现」是整个专栏最值得做成爆款的内容。
六、三条学习路线:按目标挑,不用全吃
| 路线 | 终点 | 适合谁 |
|---|---|---|---|
| 全栈通吃 (推荐) | 独立扛下完整前后端项目 | 想找全栈工作、做副业、接外包 |
| 只学后端 | 写出能上线、能抗并发的Django API | Python后端工程师想突破CRUD |
| 只学前端 | 用Vue3 + 真实API做出完整电商前端 | 前端工程师想接完整业务项目 |
不要跳过整个阶段------前后端如何联调,是任何一端工程师都该理解的。
七、适合谁?不适合谁?
适合你,如果你:
- 会Python基础语法,想做一个能写进简历的项目
- 后端CRUD写腻了,想突破库存、支付、并发、部署
- 前端想接一个完整电商业务,而不是只写静态页
- 想找全栈工作、做副业、接外包
- 想拿一个公网可访问的站点去面试
不适合你,如果你:
- 想三天速成
- 只想复制代码,不想动手
- 不愿意装环境、跑项目、踩报错
- 只想看Django怎么建表,不想理解业务
八、怎么学才有效?
别光看,必须亲手敲。
每一讲末尾会标一个commit tag,比如第23讲对应 lecture/023。
你可以:
git clone仓库后git checkout lecture/023,从该讲结束时的状态起步- 跟着文章一行一行敲,不要复制粘贴------手敲会暴露你看不懂的细节
- 跑不起来就翻文末的「常见报错速查表」,90%的坑都有人提前踩过