卡在 SaaS 项目管理模块,缺这块补这块

很多 Python Web 学习者在做项目时,后台管理能跑通 CRUD,但一到问题管理(Issue Tracking)这种复杂业务就崩了。不是后端逻辑不会写,而是前端交互太碎、表单状态难控,导致整个模块烂尾。这门课专门解决 SaaS 项目中“问题管理”模块的完整落地。它不教你写简单的增删改查,而是聚焦于一个成熟项目管理工具中核心的“提单-处理-反馈”闭环。如果你正卡在项目进度管理、或者想掌握类似 Jira/TAPD 轻量版的核心功能,这是必经之路。

适合谁看?先看什么?

基础门槛:你需要已经掌握 Django 或 Flask 的基本 ORM 操作,熟悉 Bootstrap 基础组件使用,且对 JavaScript 的事件机制有基本认知。如果你是纯后端背景,对前端 UI 库(如 datepicker、select 插件)完全陌生,建议先花半天熟悉一下 Bootstrap 表单和模态框的基本用法,否则后面会被 JS 细节劝退。如果你是全栈初学者,且刚学完用户认证和基础文章发布,这块内容正好衔接,能显著提升项目复杂度。

建议学习顺序:不要跳着看。1-1 到 1-3 是地基,重点看“问题的表结构设计”和“ORM 类映射”,这是后续所有业务逻辑的数据骨架;1-4 到 1-8 是难点集合,涵盖了样式、创建对话框、Markdown 编辑器集成、时间选择器和下拉框插件,这四个小节建议逐帧跟着敲,因为这里暴露出的 JS 闭包作用域、DOM 操作时机等问题,是初学者最容易踩坑的地方;2-1 到 2-3 进入业务深化,讲解“添加问题时的数据初始化”和“项目默认问题类型的创建逻辑”,这是让系统具备实际业务价值的关键步骤。

学完能做什么?资料怎么用?

完成本课程后,你将能够独立设计并实现一个支持多状态流转、富文本描述、精确时间标记、分类筛选的问题管理模块。你可以回答:如何设计 Issue 与 Project、User、Type 之间的关联关系?如何在同一个页面中优雅地嵌入 Markdown 编辑器并处理异步保存?如何避免模态框关闭时表单数据残留?更重要的是,你会理解 SaaS 产品中“数据结构先行,交互逻辑跟进”的工程思维。

资料配合建议:课程配套的资料包中通常包含前后端代码片段和依赖说明。请严格按章节顺序,在本地环境搭建对应版本的前后端项目。观看视频时,务必暂停并在 IDE 中同步编码,特别是涉及 Bootstrap-select 和 datepicker 插件初始化的 JavaScript 代码,直接复制粘贴而不理解参数含义,后续维护时会非常痛苦。课后作业(如 1-9 所示)通常是针对当日知识点的迷你实战,建议独立完成后再对照参考代码,这是检验你是否真的掌握“表结构-ORM-前端展示”链路是否打通的唯一标准。别急着跳过,这块内容是你从“玩具项目”迈向“企业级应用”的分水岭。

课程目录

1-1 [问题管理-1] 问题管理概述 (04:53)
1-2 [问题管理-1] 问题的表结构设计 (15:52)
1-3 [问题管理-1] 表结构对应的ORM类 (06:52)
1-4 [问题管理-1] 问题的样式处理 (11:58)
1-5 [问题管理-1] 创建问题出现对话框 (07:03)
1-6 [问题管理-1] 模态对话框和markdown编辑器的处理 (21:58)
1-7 [问题管理-1] 时间选择器datepicke (13:33)
1-8 [问题管理-1] 下拉框插件bootsrtrap-select (17:42)
1-9 [问题管理-1] 今日作业 (03:51)
2-1 [问题管理-2] 今日概要 (05:02)
2-2 [问题管理-2] 添加问题时数据初始化 (30:36)
2-3 [问题管理-2] 创建项目默认创建问题类型 (09:26)
2-4 [问题管理-2] 王洋的问题 (06:16)
2-5 [问题管理-2] 添加问题 (18:55)
2-6 [问题管理-2] 课下扩展 (03:28)
2-7 [问题管理-2] 问题列表的基本显示 (20:21)
2-8 [问题管理-2] 分页展示问题 (21:26)
2-9 [问题管理-2] 编辑页面的展示 (21:16)
2-10 [问题管理-2] 操作记录实现思路 (05:10)
2-11 [问题管理-2] 操作记录表结构设计 (05:27)
2-12 [问题管理-2] 操作记录展示(多级嵌套) (35:16)
2-13 [问题管理-2] 操作记录回复用户提示 (08:58)
2-14 [问题管理-2] 评论和回复的实现 (19:31)
2-15 [问题管理-2] 今日作业 (06:11)
3-1 [问题管理-3] 今日概要 (02:22)
3-2 [问题管理-3] 反射 (15:53)
3-3 [问题管理-3] 字符串形式获取orm字段 (14:15)
3-4 [问题管理-3] 可迭代对象 (11:30)
3-5 [问题管理-3] 问题更新实现基本思路 (08:24)
3-6 [问题管理-3] 前端标签绑定change事件 (13:10)
3-7 [问题管理-3] 后台接收到问题变更请求 (10:28)
3-8 [问题管理-3] 问题变更-文本信息 (28:48)
3-9 [问题管理-3] 问题变更-FK处理 (25:07)
3-10 [问题管理-3] 问题变更-choices处理 (06:42)
3-11 [问题管理-3] 问题变更-m2m处理 (19:57)
3-12 [问题管理-3] 问题筛选-URL搜索 (13:28)
3-13 [问题管理-3] 问题筛选-CheckFilter展示 (27:21)
3-14 [问题管理-3] 问题筛选-checkbox筛选实现 (22:29)
3-15 [问题管理-3] 问题筛选-checkbox搜索的实现 (07:41)
3-16 [问题管理-3] 问题筛选-答疑 (04:57)
3-17 [问题管理-3] 今日作业 (06:25)
3-18 [问题管理-3] 答疑 (06:41)
4-1 [问题管理-4] 今日概要 (04:52)
4-2 [问题管理-4] 筛选-FK的CheckFilter实现 (12:58)
4-3 [问题管理-4] 筛选-SelectFilter的展示 (31:25)
4-4 [问题管理-4] 筛选-SelectFilter的筛选实现 (11:19)
4-5 [问题管理-4] 筛选-SelectFilter实现关注者筛选 (02:08)