先厘清目标:这不是简单的语法入门
这门课不教你重复定义变量或写基础的函数,而是聚焦于如何用 Python Flask 框架搭建一套完整的 Web 后端服务。其核心解决的职场痛点在于:如何从单文件的脚本开发,过渡到模块化、工程化的项目构建。课程以“鱼书”为例,带你实现从用户请求到数据库查询,再到数据响应返回的全流程。对于想转行或提升技能的上班族而言,这门课的价值不在于记住多少个 API,而在于建立前后端分离的工程思维。你将学习如何处理 URL 路由、如何使用蓝图对视图进行逻辑拆分,以及如何通过第三方 API 获取数据并封装成自己的接口。学完本课,你将具备独立开发中小型 Web 应用后端的能力,不再受限于模板引擎的耦合代码。
门槛与学习路径:建议按此顺序拆解
本课程适合已经掌握 Python 基础语法,但对 HTTP 协议和 Web 框架一无所知的初学者。资料中的章节安排遵循了由浅入深的逻辑:第二章先讲 Flask 的最小原型和核心配置,这是理解后续复杂结构的地基,务必花时间弄懂“最小应用”的含义;第三章进入实战,讲解如何通过 API 获取书籍数据,这里涉及网络请求和 JSON 处理,是后端开发的常用技能,建议多调试几遍;第四章则上升到架构层面,讲解蓝图和数据库模型,这是大型项目必备的知识。建议你先通读前四章,不要急于求成,特别是遇到“循环引入”这类报错时,对照资料里的解析去理解依赖关系,比直接复制代码更有收获。
资料怎么用:脱离文档,独立复用
资料包的核心价值在于提供了一个可运行的参考标准。在练习时,建议先尝试不看源码,根据需求自行编写视图函数和路由,只有在报错无法解决时,再回看资料对比差异。重点要观察资料中如何将视图函数拆分到不同文件中,以及数据库模型是如何定义的。当你能够脱离资料,凭记忆重建出项目的基本骨架,并能够解释清楚每个模块的职责时,才算真正吃透。最终,你将能够独立完成一个包含用户认证、数据查询和页面渲染的完整 Web 项目,这足以应对初级后端开发岗位的基本要求。
课程目录
第1章 课程导语 试看 2 节 | 4分钟 1-1 开宗明义 (02:28).mp4 1-2 课程维护与提问 (00:48).mp4 第2章 Flask的基本原理与核心知识 试看 12 节 | 80分钟 2-1 鱼书是一个什么样的产品 (06:28).mp4 2-2 准备工作 (03:50).mp4 2-3 环境准备建议(选看).mp4 2-4 使用官方推荐的pipenv创建虚拟环境(很好用哦~) (11:44).mp4 2-5 开发工具推荐 (02:11).mp4 2-6 设置开发工具的默认解释器 (06:11).mp4 2-7 目的:预习Flask.mp4 2-8 flask最小原型与唯一URL原则 (12:03).mp4 2-9 路由的另一种注册方法 (08:28).mp4 2- 10 app.run相关参数与flask配置文件 (11:16).mp4 2- 11 你并没有真正理解 if __name__的作用 (06:10).mp4 2- 12 响应对象:Response (11:30).mp4 第3章 数据与flask路由 11 节 | 107分钟 3-1 搜索而不是拍照上传 (05:30).mp4 3-2 书籍搜索与查询 1-数据API (03:41).mp4 3-3 书籍搜索与查询 2-搜索关键字 (11:37).mp4 3-4 书籍搜索与查询 3-简单的重构 (08:30).mp4 3-5 获取书籍数据:调用鱼书API (17:00).mp4 3-6 requests vs urllib (09:23).mp4 3-7 从API获取数据 (19:20).mp4 3-8 使用jsonify (02:17).mp4 3-9 将视图函数拆分到单独的文件中 (08:34).mp4 3- 10 深入了解flask路由 (11:23).mp4 3- 11 循环引入流程分析 (09:34).mp4 第4章 蓝图、模型与CodeFirst 10 节 | 113分钟 4-1 应用、蓝图与视图函数 (09:19).mp4 4-2 用蓝图注册视图函数 (06:44).mp4 4-3 单蓝图多模块拆分视图函数 (11:48).mp4 4-4 request 对象 (11:06).mp4 4-5 WTForms参数验证 (15:56).mp4 4-6 拆分配置文件 (20:14).mp4 4-7 Model First、Database First与Code First (09:52).mp4 4-8 定义第一个模型类 (11:47).mp4 4-9 将模型映射到数据库中 (09:19).mp4 4- 10 ORM与CodeFirst区别 (06:35).mp4 第5章 flask核心机制 8 节 | 76分钟 5-1 flask中经典错误 working outside application context (06:06).mp4 5-2 AppContext、RequestContext、Flask与Request之间的关系 (08:57).mp4 5-3 详解flask上下文与出入栈 (17:36).mp4 5-4 目的:理解线程与进程.mp4 5-5 flask上下文与with语句 (15:46).mp4 5-6 详解上下文管理器的__exit__方法 (12:59).mp4 5-7 目的: 掌握数据库设计.mp4 5-8 阅读源码解决db.create_all的问题 (14:06).mp4 第6章 Flask中的多线程与线程隔离技术 14 节 | 132分钟 6-1 什么是进程 (10:01).mp4 6-2 线程的概念 (05:35).mp4 6-3 多线程 (12:43).mp4 6-4 多线程的优势与好处 (03:16).mp4 6-5 全局解释器锁GIL (14:19).mp4 6-6 对于IO密集型程序,多线程是有意义的 (05:46).mp4 6-7 开启flask多线程所带来的问题 (14:59).mp4 6-8 线程隔离 (05:23).mp4 6-9 Flask中的线程隔离对象Local (11:51).mp4 6- 10 Flask 中的线程隔离栈:LocalStack (07:38).mp4 6- 11 LocalStack作为-Stack-的基本用法 (07:16).mp4 6- 12 LocalStack作为线程隔离对象的意义 (05:01).mp4 6- 13 flask中被线程隔离的对象 (14:25).mp4 6- 14 梳理串接flask的一些名词 (13:19).mp4 第7章 书籍详情页面的构建(ViewModel、面向对象与重构) 8 节 | 90分钟 7-1 ViewModel的基本概念 (14:52).mp4 7-2 使用ViewModel处理书籍数据 上 (14:50).mp4 7-3 使用ViewModel处理书籍数据 下 (09:42).mp4 7-4 伪面向对象:披着面向对象外衣的面向过程 (06:06).mp4 7-5 重构鱼书核心对象:YuShuBook 上 (10:01).mp4 7-6 重构鱼书核心对象:YuShuBook 下 (08:56).mp4 7-7 从json序列化看代码解释权反转 (14:17).mp4 7-8 详解单页面与网站的区别 (11:03).mp4 第8章 静态文件、模板、消息闪现与Jinja2 12 节 | 91分钟 8-1 静态文件访问原理 (13:24).mp4 8-2 模板文件的位置与修改方案_x264 (09:18).mp4 8-3 Jinja2的概念 (04:48).mp4 8-4 在Jinja2中读取字典和对象 (02:33).mp4 8-5 流程控制语句 if (04:13).mp4 8-6 流程控制语句 for in 循环 (03:47).mp4 8-7 使用模板继承 (06:27).mp4 8-8 过滤器与管道命令 (09:35).mp4 8-9 反向构建URL (08:02).mp4 8- 10 消息闪现、SecretyKey与变量作用域 (08:54).mp4 8- 11 显示搜索结果页面 (10:06).mp4 8- 12 页面结构解析 (09:02).mp4 第9章 用户登录与注册 16 节 | 111分钟 9-1 viewmodel意义的体现与filter函数的巧妙应用 (09:10).mp4 9-2 书籍详情页面业务逻辑分析 (05:31).mp4 9-3 实现书籍详情页面 (07:54).mp4 9-4 模型与模型关系 (10:41).mp4 9-5 自定义基类模型 (03:56).mp4 9-6 用户注册 (07:58).mp4 9-7 Python的动态赋值 (07:23).mp4 9-8 Python属性描述符实现getter与setter (07:28).mp4 9-9 ORM的方式保存模型 (04:23).mp4 9- 10 自定义验证器 (05:15).mp4 9- 11 redirect重定向 (03:30).mp4 9- 12 cookie (05:04).mp4 9- 13 cookie的应用 (08:28).mp4 9- 14 login_user 将用户信息写入cookie (09:33).mp4 9- 15 访问权限控制 (07:42).mp4 9- 16 重定向攻击 (06:37).mp4 第10章 书籍交易模型(数据库事务、重写Flask中的对象) 13 节 | 88分钟 10-1 鱼豆 (08:05).mp4 10-2 思维逻辑锻炼 (05:59).mp4 10-3 事务与回滚 (04:46).mp4 10-4 Python @contextmanager (10:17).mp4 10-5 灵活使用@contextmanager (03:04).mp4 10-6 结合继承、yield、contextmanager、rollback来解决问题 (08:33).mp4 10-7 类变量的陷阱 (05:24).mp4 10-8 合理使用ajax (05:17).mp4 10-9 书籍交易视图模型 (11:39).mp4 10- 10 处理时间 (02:15).mp4 10- 11 书籍详情页面 (03:42).mp4 10- 12 再谈MVC中的Model (06:36).mp4 10- 13 重写filter_by (11:35).mp4 第11章 鱼书业务处理 13 节 | 87分钟 11-1 最近的礼物(复杂SQL的编写方案) (08:25).mp4 11-2 链式调用 (01:51).mp4 11-3 完成最近的礼物(业务的四种编写方案) (11:53).mp4 11-4 目的:理解ORM.mp4 11-5 我的礼物 一 (使用db.session和filter做查询) (09:13).mp4 11-6 我的礼物 二(group_by与funct.count统计联合使用) (11:52).mp4 11-7 目的:装饰器的高级应用.mp4 11-8 我的礼物 三 (不要在函数中返回元组,而应该返回字典) (05:13).mp4 11-9 我的礼物 四 (12:48).mp4 11- 10 用户注销 (03:29).mp4 11- 11 我的心愿 一 (07:13).mp4 11- 12 我的心愿 二 (再谈循环导入的解决方案) (07:36).mp4 11- 13 我的心愿 三 (谈谈重复代码的封装技巧) (06:51).mp4 第12章 Python与Flask的结合应用 25 节 | 208分钟 12-1 忘记密码(重置密码流程分析) (06:13).mp4 12-2 first_or_404 (07:43).mp4 12-3 callable 可调用对象的意义 (11:47).mp4 12-4 HTTPException 一 (04:44).mp4 12-5 HTTPException 二 (05:16).mp4 12-6 装饰器app_errorhandler:AOP的应用 (08:14).mp4 12-7 发送电子邮件 一 (08:58).mp4 12-8 发送电子邮件 二 (08:30).mp4 12-9 使用itsdangerous生成令牌 (09:31).mp4 12- 10 重置密码 (09:33).mp4 12- 11 异步发送电子邮件 (14:56).mp4 12- 12 鱼漂业务逻辑与Drift模型 (06:44).mp4 12- 13 合理利用数据冗余记录历史状态 (08:39).mp4 12- 14 鱼漂条件检测 (15:41).mp4 12- 15 完成鱼漂业务逻辑 (10:11).mp4 12- 16 交易记录页面 (06:12).mp4 12- 17 Drift ViewModel 一 (15:25).mp4 12- 18 Drift ViewModel 二 (04:10).mp4 12- 19 三种类模式的总结与对比 (05:31).mp4 12- 20 更好的使用枚举 (11:19).mp4 12- 21 超权现象防范 (05:36).mp4 12- 22 拒绝请求 (03:31).mp4 12- 23 邮寄成功 (06:05).mp4 12- 24 撤销礼物与心愿 (06:02).mp4 12- 25 向他人赠送书籍 (06:25).mp4 第13章 进阶教程《Python Flask高级编程-下篇》多章节试看 7 节 | 58分钟 13-1 环境、开发工具与flask1.0 (05:18).mp4 13-2 初始化项目 (03:57).mp4 13-3 新建入口文件 (07:13).mp4 13-4 蓝图分离视图函数的缺陷 (09:27).mp4 13-5 打开思维,创建自己的Redprint——红图 (11:32).mp4 13-6 实现Redprint (16:50).mp4 13-7 优化Redprint (03:19).mp4






