# Python Django轻量级SaaS管理平台实战演练——课程导读

课程概述

本课程面向希望快速掌握企业级SaaS平台开发能力的Python开发者,以Django框架为核心,带你从零搭建一套完整的轻量级SaaS管理系统。课程摒弃冗长的理论灌输,采用"边学边做"的实战模式,让你在真实项目场景中理解Django的最佳实践与工程规范。

你将学到什么

**第一阶段:项目基础与环境搭建**

课程开篇为你系统梳理SaaS项目的核心概念与行业应用,通过演示案例让你直观感受成品效果。随后进入实战环节,详细讲解虚拟环境的创建与模块管理——这是Python开发不可或缺的基础技能。你将学习如何配置Django的本地化设置(local_settings),区分开发环境与生产环境的差异,并掌握企业级的代码分享规范。这些看似基础的步骤,却是决定项目能否长期稳定运行的关键。

**第二阶段:用户体系与核心功能开发**

这一阶段是课程的重头戏。你将接触到腾讯云短信服务的对接流程,理解短信验证码在用户注册、登录中的安全价值。通过ModelForm的实现,你会学会如何用Django的表单机制自动生成注册字段,并结合Redis实现短信验证码的存储与过期控制。课程不仅关注功能实现,更注重页面美化的细节处理——从CSS样式调整到Bootstrap组件的合理运用,让你的管理后台既实用又美观。

**第三阶段:开发规范与项目推进**

课程特别强调公司级别的开发规范,涵盖代码组织结构、模块拆分原则以及团队协作中的Git分支管理策略。这些内容往往被自学者的课程所忽略,却是从"写代码"迈向"做工程"的必经之路。

适合谁学

- 已掌握Python基础语法,希望深入Django开发的中级学习者
- 有Django入门经验,但缺乏完整项目实战经验的小白
- 对SaaS产品开发感兴趣,想了解多租户架构实现的开发者
- 希望提升前端页面美化能力的全栈方向学习者

学习建议

本课程节奏紧凑、内容充实,建议配套完成每节课的作业。尤其是虚拟环境配置、Redis安装、短信对接等环节,实际操作中容易遇到环境差异问题,遇到问题不要急于跳过,这是积累排查经验的最佳时机。课程提供的分期开发方案让你能够循序渐进地完成从0到1的项目构建,坚持跟完全程,你将会拥有一套可运行的SaaS管理平台源码,为求职或接私单打下坚实基础。

准备好了吗?让我们开始这场从环境搭建到功能落地的完整开发之旅。

课程目录

课程目录247 集
  • 1-1 [开篇] sass项目介绍 (03:51).mp4
  • 1-2 [开篇] sass项目演示 (12:56).mp4
  • 1-3 [开篇] 项目讲解和学习提醒 (18:12).mp4
  • 1-4 [开篇] 阶段项目涉及知识点 (46:27).mp4
  • 1-5 [开篇] 分期项目开发 (09:49).mp4
  • 1-6 [开篇] 今日概要 (05:15).mp4
  • 1-7 [开篇] 搭建虚拟环境 (17:07).mp4
  • 1-8 [开篇] 激活和退出虚拟环境 (09:19).mp4
  • 1-9 [开篇] 激活虚拟环境并安装模块 (04:43).mp4
  • 1-10 [开篇] django版本调整【补充】 (03:10).mp4
  • 1-11 [开篇] 基于虚拟环境搭建django项目 (10:57).mp4
  • 1-12 [开篇] 警醒 (01:56).mp4
  • 1-13 [开篇] 本地配置local_settings (08:39).mp4
  • 1-14 [开篇] 公司开发规范和分享代码 (26:03).mp4
  • 1-15 [开篇] 今日作业 (09:46).mp4
  • 2-1 [短信对接+ModelForm+页面整理+redis] 今日概要 (05:27).mp4
  • 2-2 [短信对接+ModelForm+页面整理+redis] 内容回顾 (35:00).mp4
  • 2-3 [短信对接+ModelForm+页面整理+redis] 腾讯云短信 (43:16).mp4
  • 2-4 [短信对接+ModelForm+页面整理+redis] ModelForm生成注册字段 (24:35).mp4
  • 2-5 [短信对接+ModelForm+页面整理+redis] ModelForm美化页面 (21:12).mp4
  • 2-6 [短信对接+ModelForm+页面整理+redis] 页面美化和调整 (09:56).mp4
  • 2-7 [短信对接+ModelForm+页面整理+redis] 注册实现思路 (14:29).mp4
  • 2-8 [短信对接+ModelForm+页面整理+redis] windows安装redis (12:25).mp4
  • 2-9 [短信对接+ModelForm+页面整理+redis] python快速操作redis (10:36).mp4
  • 2-10 [短信对接+ModelForm+页面整理+redis] 作业 (10:03).mp4
  • 3-1 [注册功能-1] 今日概要 (05:47).mp4
  • 3-2 [注册功能-1] 内容回顾和django-redis补充 (48:12).mp4
  • 3-3 [注册功能-1] 注册-多app模板处理 (17:43).mp4
  • 3-4 [注册功能-1] 注册-母版准备 (19:00).mp4
  • 3-5 [注册功能-1] 注册-路由处理 (08:14).mp4
  • 3-6 [注册功能-1] 注册-导航条处理 (10:12).mp4
  • 3-7 [注册功能-1] 注册-页面展示 (11:02).mp4
  • 3-8 [注册功能-1] 上午总结和任务 (03:15).mp4
  • 3-9 [注册功能-1] 注册-获取验证码思路 (05:29).mp4
  • 3-10 [注册功能-1] 注册-获取手机发送Ajax请求 (20:28).mp4
  • 3-11 [注册功能-1] 注册-格式校验 (20:57).mp4
  • 3-12 [注册功能-1] 注册-发短信和redis存储 (14:46).mp4
  • 3-13 [注册功能-1] 注册-短信验证错误信息 (20:51).mp4
  • 3-14 [注册功能-1] Form钩子知识点答疑 (03:30).mp4
  • 3-15 [注册功能-1] 注册-验证码倒计时 (14:08).mp4
  • 3-16 [注册功能-1] 内容总结 (10:54).mp4
  • 3-17 [注册功能-1] 今日作业 (04:08).mp4
  • 4-1 [注册功能+登录+短信验证] 今日概要 (05:30).mp4
  • 4-2 [注册功能+登录+短信验证] 内容回顾 (04:48).mp4
  • 4-3 [注册功能+登录+短信验证] 注册-用户注册提交ajax (19:23).mp4
  • 4-4 [注册功能+登录+短信验证] 注册-数据校验 (24:23).mp4
  • 4-5 [注册功能+登录+短信验证] 注册-成功入库并跳转 (19:42).mp4
  • 4-6 [注册功能+登录+短信验证] 注册-陈硕找到的Bug (09:41).mp4
  • 4-7 [注册功能+登录+短信验证] 短信登录-显示和BootStrap基类 (16:49).mp4
  • 4-8 [注册功能+登录+短信验证] 短信登录-答疑 (02:34).mp4
  • 4-9 [注册功能+登录+短信验证] 短信登录-发送验证码(注册相同URL) (09:57).mp4
  • 4-10 [注册功能+登录+短信验证] 短信登录-成功 (37:06).mp4
  • 4-11 [注册功能+登录+短信验证] 上午任务 (02:16).mp4
  • 4-12 [注册功能+登录+短信验证] 用户登录-pillow生成验证码 (22:43).mp4
  • 4-13 [注册功能+登录+短信验证] 用户登录-Session和Cookie回顾 (16:17).mp4
  • 4-14 [注册功能+登录+短信验证] 用户登录-图片验证码实现思路 (07:44).mp4
  • 4-15 [注册功能+登录+短信验证] 答疑 (03:02).mp4
  • 4-16 [注册功能+登录+短信验证] 用户登录-生成图片验证码 (13:00).mp4
  • 4-17 [注册功能+登录+短信验证] 用户登录-验证码超时和点击更换 (15:15).mp4
  • 4-18 [注册功能+登录+短信验证] 用户登录-图片验证码完成 (23:36).mp4
  • 4-19 [注册功能+登录+短信验证] 用户登录-页面和功能完成 (13:30).mp4
  • 4-20 [注册功能+登录+短信验证] 用户认证完善 (10:16).mp4
  • 4-21 [注册功能+登录+短信验证] 项目总结和任务 (05:28).mp4
  • 5-1 [业务讨论] 管理中概述 (06:12).mp4
  • 5-2 [业务讨论] 今日概要 (05:44).mp4
  • 5-3 [业务讨论] django离线脚 (25:24).mp4
  • 5-4 [业务讨论] 业务讨论-价格策略 (09:10).mp4
  • 5-5 [业务讨论] 思考-用户和策略关联关系 (03:02).mp4
  • 5-6 [业务讨论] 业务讨论-交易记录 (18:49).mp4
  • 5-7 [业务讨论] 业务讨论-交易补充 (04:19).mp4
  • 5-8 [业务讨论] 业务讨论-项目 (10:58).mp4
  • 5-9 [业务讨论] 业务讨论-参与者 (12:38).mp4
  • 6-1 [项目开发_01] 今日概要 (02:03).mp4
  • 6-2 [项目开发_01] 项目开发-表结构设计 (22:11).mp4
  • 6-3 [项目开发_01] m2m字段答疑 (07:43).mp4
  • 6-4 [项目开发_01] 项目开发-离线脚本 (08:12).mp4
  • 6-5 [项目开发_01] 项目开发-用户注册设置免费额度 (12:02).mp4
  • 6-6 [项目开发_01] 项目开发-母版样式设计 (21:58).mp4
  • 6-7 [项目开发_01] 项目开发-添加按钮和中间件权限处理 (27:51).mp4
  • 6-8 [项目开发_01] 项目开发-登录获取用户额度 (17:59).mp4
  • 6-9 [项目开发_01] 项目开发-中间件对额度和用户信息的封装 (26:31).mp4
  • 6-10 [项目开发_01] 项目开发-创建项目 (44:11).mp4
  • 6-11 [项目开发_01] 今日任务 (07:44).mp4
  • 7-1 [项目开发_02] 今日概要 (09:13).mp4
  • 7-2 [项目开发_02] 获取项目列表 (29:41).mp4
  • 7-3 [项目开发_02] 展示项目列表 (12:59).mp4
  • 7-4 [项目开发_02] 星标项目 (16:43).mp4
  • 7-5 [项目开发_02] 取消星标 (12:17).mp4
  • 7-6 [项目开发_02] BootStrapForm支持部分使用样式 (13:04).mp4
  • 7-7 [项目开发_02] 项目颜色定制 (20:29).mp4
  • 7-8 [项目开发_02] 项目颜色处理总结 (12:59).mp4
  • 7-9 [项目开发_02] 答疑 (04:34).mp4
  • 7-10 [项目开发_02] 基于inclusion_tag实现菜单切换 (29:21).mp4
  • 7-11 [项目开发_02] 项目管理URL和视图的设计 (23:58).mp4
  • 7-12 [项目开发_02] 项目菜单设计和实现 (28:28).mp4
  • 7-13 [项目开发_02] 修复页面小BUG (03:00).mp4
  • 7-14 [项目开发_02] 项目菜单默认选中 (19:00).mp4
  • 7-15 [项目开发_02] 总结和作业 (11:02).mp4
  • 7-16 [项目开发_02] 答疑 (02:59).mp4
  • 8-1 [wiki开发_基本逻辑开发] 今日概要 (07:10).mp4
  • 8-2 [wiki开发_基本逻辑开发] wiki表结构设计 (23:06).mp4
  • 8-3 [wiki开发_基本逻辑开发] wiki开发流程 (05:44).mp4
  • 8-4 [wiki开发_基本逻辑开发] wiki首页 (20:45).mp4
  • 8-5 [wiki开发_基本逻辑开发] wiki添加 (22:35).mp4
  • 8-6 [wiki开发_基本逻辑开发] wiki添加的Bug修复 (12:16).mp4
  • 8-7 [wiki开发_基本逻辑开发] wiki多级目录展示实现思路(同多级评论) (20:01).mp4
  • 8-8 [wiki开发_基本逻辑开发] wiki多级目录展示 (34:33).mp4
  • 8-9 [wiki开发_基本逻辑开发] 多级目录展示 (27:21).mp4
  • 8-10 [wiki开发_基本逻辑开发] 预览文章 (06:08).mp4
  • 8-11 [wiki开发_基本逻辑开发] 今日作业 (08:38).mp4
  • 9-1 [wiki_markdown引入] 今日概要 (03:13).mp4
  • 9-2 [wiki_markdown引入] 删除wiki (09:57).mp4
  • 9-3 [wiki_markdown引入] 编辑wiki和页面的调整 (13:30).mp4
  • 9-4 [wiki_markdown引入] markdown编辑器的应用 (23:41).mp4
  • 9-5 [wiki_markdown引入] markdown全屏的问题 (04:09).mp4
  • 9-6 [wiki_markdown引入] markdown预览 (13:24).mp4
  • 9-7 [wiki_markdown引入] 总结和欠缺功能 (04:10).mp4
  • 9-8 [wiki_markdown引入] 基于Python实现cos快速上传文件 (28:01).mp4
  • 9-9 [wiki_markdown引入] 基于Python实现创建桶 (08:45).mp4
  • 9-10 [wiki_markdown引入] 项目中创建桶 (23:13).mp4
  • 9-11 [wiki_markdown引入] wiki上传本地图片 (35:50).mp4
  • 10-1 [文件上传_01] 文件管理功能和知识点介绍 (13:13).mp4
  • 10-2 [文件上传_01] 今日概要 (02:46).mp4
  • 10-3 [文件上传_01] 文件管理实现设计 (09:58).mp4
  • 10-4 [文件上传_01] 表结构设计的需求 (01:39).mp4
  • 10-5 [文件上传_01] 表结构设计思路 (28:01).mp4
  • 10-6 [文件上传_01] 在orm中创建表 (04:40).mp4
  • 10-7 [文件上传_01] 知识点-url参数 (03:08).mp4
  • 10-8 [文件上传_01] 知识点-导航条 (14:36).mp4
  • 10-9 [文件上传_01] 知识点-js直接上传 (35:31).mp4
  • 10-10 [文件上传_01] 知识点-临时秘钥上传cos文件 (14:04).mp4
  • 10-11 [文件上传_01] 知识点-cos上传总结 (01:50).mp4
  • 10-12 [文件上传_01] 知识点-cos创建桶并设置cors (09:04).mp4
  • 10-13 [文件上传_01] 知识点-cos集成到项目是需要的改动 (03:59).mp4
  • 10-14 [文件上传_01] 知识点-前端面试题分享 (21:17).mp4
  • 10-15 [文件上传_01] 知识点-闭包和异步 (23:58).mp4
  • 10-16 [文件上传_01] 今日作业 (05:49).mp4
  • 11-1 [文件上传_02] 今日概要 (02:30).mp4
  • 11-2 [文件上传_02] 文件夹添加 (01:08:06).mp4
  • 11-3 [文件上传_02] 文件夹操作答疑 (02:03).mp4
  • 11-4 [文件上传_02] 文件夹列表展示 (16:22).mp4
  • 11-5 [文件上传_02] 路径导航 (13:41).mp4
  • 11-6 [文件上传_02] 文件夹的编辑 (23:45).mp4
  • 11-7 [文件上传_02] 文件夹和文件的删除基本实现 (28:51).mp4
  • 11-8 [文件上传_02] 删除cos和归还空间 (32:57).mp4
  • 11-9 [文件上传_02] cos删除文件校验 (05:20).mp4
  • 11-10 [文件上传_02] 文件上传-上传按钮 (17:16).mp4
  • 11-11 [文件上传_02] 今日作业 (07:03).mp4
  • 12-1 [文件上传_03] 今日概要 (02:33).mp4
  • 12-2 [文件上传_03] 临时凭证和上传文件 (50:10).mp4
  • 12-3 [文件上传_03] 上节作业答疑 (09:37).mp4
  • 12-4 [文件上传_03] 上传时文件大小限制 (53:35).mp4
  • 12-5 [文件上传_03] 总容量大小bug修复 (02:12).mp4
  • 12-6 [文件上传_03] 上传文件并展示进度条 (27:33).mp4
  • 12-7 [文件上传_03] 上传成功-向后台发送数据 (26:02).mp4
  • 12-8 [文件上传_03] 后台对文件数据校验 (33:54).mp4
  • 12-9 [文件上传_03] 数据校验的梳理 (04:51).mp4
  • 12-10 [文件上传_03] 页面实时展示上传后的数据 (40:44).mp4
  • 12-11 [文件上传_03] 本周作业 (06:50).mp4
  • 13-1 [文件上传_04] 阶段任务和今日概要 (12:07).mp4
  • 13-2 [文件上传_04] 让django支持下载文件 (12:11).mp4
  • 13-3 [文件上传_04] 下载按钮处理 (14:57).mp4
  • 13-4 [文件上传_04] 文件下载 (09:25).mp4
  • 13-5 [文件上传_04] 删除项目-页面准备 (27:25).mp4
  • 13-6 [文件上传_04] 删除项目-桶和项目 (33:21).mp4
  • 14-1 [问题管理_01] 问题管理概述 (04:53).mp4
  • 14-2 [问题管理_01] 问题的表结构设计 (15:52).mp4
  • 14-3 [问题管理_01] 表结构对应的ORM类 (06:52).mp4
  • 14-4 [问题管理_01] 问题的样式快速处理 (11:58).mp4
  • 14-5 [问题管理_01] 创建问题出现对话框 (07:03).mp4
  • 14-6 [问题管理_01] 模态对话框和markdown编辑器的处理 (21:58).mp4
  • 14-7 [问题管理_01] 时间选择器datepicke (13:33).mp4
  • 14-8 [问题管理_01] 下拉框插件bootsrtrap-select (17:42).mp4
  • 14-9 [问题管理_01] 今日作业 (03:51).mp4
  • 15-1 [问题管理_02] 今日概要 (05:02).mp4
  • 15-2 [问题管理_02] 添加问题时数据初始化 (30:36).mp4
  • 15-3 [问题管理_02] 王洋的问题 (06:16).mp4
  • 15-4 [问题管理_02] 创建项目默认创建问题类型 (09:26).mp4
  • 15-5 [问题管理_02] 添加问题 (18:55).mp4
  • 15-6 [问题管理_02] 课下扩展 (03:28).mp4
  • 15-7 [问题管理_02] 问题列表的基本显示 (20:21).mp4
  • 15-8 [问题管理_02] 分页展示问题 (21:26).mp4
  • 15-9 [问题管理_02] 编辑页面的展示 (21:16).mp4
  • 15-10 [问题管理_02] 操作记录实现思路 (05:10).mp4
  • 15-11 [问题管理_02] 操作记录表结构设计 (05:27).mp4
  • 15-12 [问题管理_02] 操作记录展示(多级嵌套) (35:16).mp4
  • 15-13 [问题管理_02] 操作记录回复用户提示 (08:58).mp4
  • 15-14 [问题管理_02] 评论和回复的实现 (19:31).mp4
  • 15-15 [问题管理_02] 今日作业 (06:11).mp4
  • 16-1 [问题管理_03] 今日概要 (02:22).mp4
  • 16-2 [问题管理_03] 反射 (15:53).mp4
  • 16-3 [问题管理_03] 字符串形式获取orm字段 (14:15).mp4
  • 16-4 [问题管理_03] 可迭代对象 (11:30).mp4
  • 16-5 [问题管理_03] 问题更新实现基本思路 (08:24).mp4
  • 16-6 [问题管理_03] 前端标签绑定change事件 (13:10).mp4
  • 16-7 [问题管理_03] 后台接收到问题变更请求 (10:28).mp4
  • 16-8 [问题管理_03] 问题变更-文本信息 (28:48).mp4
  • 16-9 [问题管理_03] 问题变更-FK处理 (25:07).mp4
  • 16-10 [问题管理_03] 问题变更-choices处理 (06:42).mp4
  • 16-11 [问题管理_03] 问题变更-m2m处理 (19:57).mp4
  • 16-12 [问题管理_03] 问题筛选-URL搜索 (13:28).mp4
  • 16-13 [问题管理_03] 问题筛选-CheckFilter展示 (27:21).mp4
  • 16-14 [问题管理_03] 问题筛选-checkbox筛选实现 (22:29).mp4
  • 16-15 [问题管理_03] 问题筛选-checkbox搜索的实现 (07:41).mp4
  • 16-16 [问题管理_03] 问题筛选-答疑 (04:57).mp4
  • 16-17 [问题管理_03] 今日作业 (06:25).mp4
  • 16-18 [问题管理_03] 答疑 (06:41).mp4
  • 17-1 [问题管理_04] 今日概要 (04:52).mp4
  • 17-2 [问题管理_04] 筛选-FK的CheckFilter实现 (12:58).mp4
  • 17-3 [问题管理_04] 筛选-SelectFilter的展示 (31:25).mp4
  • 17-4 [问题管理_04] 筛选-SelectFilter的筛选实现 (11:19).mp4
  • 17-5 [问题管理_04] 筛选-SelectFilter实现关注者筛选 (02:08).mp4
  • 18-1 [邀请+概览] 邀请-表结构设计 (11:58).mp4
  • 18-2 [邀请+概览] 邀请-生成对话框 (08:47).mp4
  • 18-3 [邀请+概览] 邀请-生成邀请链接 (30:44).mp4
  • 18-4 [邀请+概览] 邀请-邀请链接的校验 (21:07).mp4
  • 18-5 [邀请+概览] 概览-详细展示 (25:39).mp4
  • 18-6 [邀请+概览] 概览-问题统计 (14:34).mp4
  • 18-7 [邀请+概览] 概览-项目参与者 (08:28).mp4
  • 18-8 [邀请+概览] 概览-动态 (09:54).mp4
  • 18-9 [邀请+概览] 今日作业 (10:20).mp4
  • 18-10 [邀请+概览] 今日概要 (01:32).mp4
  • 18-11 [邀请+概览] django时区设置 (10:24).mp4
  • 18-12 [邀请+概览] 上节bug处理 (15:36).mp4
  • 18-13 [邀请+概览] highcharts的快速了解 (31:55).mp4
  • 18-14 [邀请+概览] 新增问题趋势实现 (35:09).mp4
  • 18-15 [邀请+概览] 关于中文包的问题 (06:06).mp4
  • 18-16 [邀请+概览] highcharts总结 (04:53).mp4
  • 18-17 [邀请+概览] daterangepicker时间区间选择 (26:11).mp4
  • 18-18 [邀请+概览] 优先级饼图的展示 (21:47).mp4
  • 18-19 [邀请+概览] 人员任务配比 (50:52).mp4
  • 18-20 [邀请+概览] 画图的重点难点 (03:30).mp4
  • 19-1 [支付环节] 支付流程 (09:01).mp4
  • 19-2 [支付环节] 价格页面展示 (13:23).mp4
  • 19-3 [支付环节] 订单信息展示 (30:30).mp4
  • 19-4 [支付环节] 立即支付-创建订单 (16:09).mp4
  • 19-5 [支付环节] 立即支付-创建订单(bug修复) (01:13).mp4
  • 19-6 [支付环节] 支付宝支付-账户申请和准备 (25:14).mp4
  • 19-7 [支付环节] 支付宝支付-参数和面试题 (27:19).mp4
  • 19-8 [支付环节] 支付宝支付-签名原理 (21:35).mp4
  • 19-9 [支付环节] 支付宝支付-签名的实现 (07:54).mp4
  • 19-10 [支付环节] 支付宝支付-支付的实现 (12:37).mp4
  • 19-11 [支付环节] 支付宝支付-代码封装 (09:30).mp4
  • 19-12 [支付环节] 支付宝支付-支付回调处理 (31:15).mp4
  • 19-13 [支付环节] 支付宝支付-陈硕答疑 (01:47).mp4
  • 19-14 [支付环节] 订单列表 (07:17).mp4
  • 19-15 [支付环节] 作业及之后知识点预告 (23:25).mp4