很多人写 Flask 是从一个单文件 app.py 开始的:几条路由、一个 SQLite、模板渲染几个页面,跑起来挺顺。可一旦要做前后端分离、要给小程序或移动端供接口、要让字段能按需拼装和隐藏,原来那套写法就开始处处别扭——视图函数越来越长,序列化逻辑散得到处都是,模型改一个字段要翻好几个文件。
这门课要解决的正是这个阶段的卡顿:不是 Flask 会不会用,而是能不能把 Flask 当成一套可维护的 RESTful 后端来组织。
先看缺口:你可能正卡在这几处
- 知道 RESTful 大致是「用 HTTP 动词 + 资源路径」,但真到设计阶段,分不清什么时候该加一层控制器、什么时候该让模型自己返回数据。
- 写过
jsonify,却说不清视图模型(ViewModel)该放在哪一层,结果是字典拼装代码和业务逻辑混在一起。 - 用过 ORM,但遇到对象实例化、序列化时字段的取舍,只能靠临时加参数绕过去。
- 前后端联调时,接口字段的可见性、增删规则靠口头约定,没人把它写进代码。
如果你对上面任意一条有共鸣,这门课的章节安排就不是「再看一遍基础」,而是补组织方式那一块。
课程在后半段主要处理什么问题
从线索能看出,课程进入了一个小程序功能实现的阶段,并且把重点放在模型与接口之间的那层处理上。这里讨论的不是「怎么定义一条路由」,而是几个更细的问题:模型对象如何被正确地实例化并转成可返回的结构,字段的隐藏与追加如何在重构后保持稳定,以及当同一份数据要面向不同调用方时,怎样避免在每个接口里重复写一遍筛选逻辑。
它给出的思路是引入独立的视图模型层:模型负责数据与关系,视图模型负责对外呈现,接口只做编排。这样字段的增删改集中在一处,前端拿到的结构不会因为后端重构而莫名其妙地变动。这条线对做前后端分离的人特别关键,因为接口一旦被客户端依赖,随意改字段的成本会很高。
配套练习该怎么用
光看视频很容易产生「我懂了」的错觉,因为讲师写代码时思路是连贯的,而你自己写时会在细节处卡住。建议按下面的方式跟:
- 每讲到一个结构调整,先暂停,用自己手上的数据模型照着改一遍,再对照讲师的处理方式找差异。
- 刻意制造一次字段变更:模型加一个属性,然后只改一处,看整个接口输出是否自动跟上。这是检验分层是否真的落地的办法。
- 为一个接口写两种返回形态(比如列表页和详情页),看能否共用同一套视图模型而不复制代码。
- 把接口当成外部契约来对待,改完之后自己用 HTTP 客户端调一遍,确认字段名和结构没被重构带偏。
看完应该能回答的问题
- 在你当前的代码里,序列化逻辑分布在哪几处?如果要统一,第一刀切在哪里?
- 模型对象实例化出问题时,你判断是数据层的原因还是呈现层的原因?依据是什么?
- 字段的隐藏与追加,是写在模型里、视图模型里,还是接口函数里?各自的代价是什么?
- 当客户端已经依赖某个字段,你要改它的结构时,改动会波及哪些文件?
这门课不适合完全没写过 Flask 的人,因为它的价值在于「重构与分层」,而这需要你先有被重构的对象。适合的是已经能跑通一个后端项目、准备把它推向可维护状态的人。带着自己项目里的具体痛点来看,收获会比纯跟做示例大得多。
MOOC实战:Python Flask高级编程——RESTful API前后端分离详解
深入掌握Flask框架,构建RESTful API
编辑点评
课程深入浅出地讲解了Flask框架的高级编程技巧,特别是RESTful API的设计与实现,适合有一定Python基础并希望提升后端开发能力的学员。
⭐ 编辑推荐
本课程通过实战项目,带你深入理解Flask框架的高级编程,掌握RESTful API前后端分离的精髓。
课程亮点
课程目录
📁 第9章 实现部分鱼书小程序功能
第9章 实现部分鱼书小程序功能必看.png [493.5 KB]
9-5 @orm.reconstructor 解决模型对象实例化问题.mp4 [124.0 MB]
9-6 重构hide与append.mp4 [54.2 MB]
9-3 再谈严格型REST的缺陷.mp4 [92.6 MB]
9-7 赠送礼物接口.mp4 [41.0 MB]
9-1 小程序演示API调用效果.mp4 [99.5 MB]
9-2 模糊搜索书籍.mp4 [88.8 MB]
9-4 实现hide方法.mp4 [57.3 MB]
📁 第1章 随便聊聊
第1章 随便聊聊说明.png [493.5 KB]
1-1 Flask VS Django.mp4 [9.2 MB]
📁 第2章 起步与红图
第2章 起步与红图说明.png [493.5 KB]
2-1 环境、开发工具与flask1.0.mp4 [12.6 MB]
2-5 打开思维,创建自己的Redprint——红图.mp4 [47.3 MB]
2-4 蓝图分离视图函数的缺陷.mp4 [28.8 MB]
2-3 新建入口文件.mp4 [18.6 MB]
2-7 优化Redprint.mp4 [15.6 MB]
2-2 初始化项目.mp4 [19.0 MB]
2-6 实现Redprint.mp4 [68.4 MB]
📁 第8章 权限控制
8-13 Scope 优化 探讨模块级别的Scope.mp4 [97.2 MB]
8-9 Scope优化一 支持权限相加.mp4 [59.1 MB]
8-10 Scope优化 二 支持权限链式相加.mp4 [25.7 MB]
8-6 实现Scope权限管理 一.mp4 [121.1 MB]
8-11 Scope优化 三 所有子类支持相加.mp4 [60.9 MB]
8-12 Scope优化 四 运算符重载.mp4 [38.6 MB]
8-3 生成超级管理员账号.mp4 [56.9 MB]
8-4 不太好的权限管理方案.mp4 [123.2 MB]
8-7 globals()实现“反射”.mp4 [102.5 MB]
8-14 Scope优化 实现模块级别的Scope.mp4 [80.8 MB]
8-15 Scope优化 七 支持排除.mp4 [133.7 MB]
8-1 删除模型注意事项.mp4 [82.3 MB]
8-5 比较好的权限管理方案.mp4 [88.4 MB]
8-2 g变量中读取uid防止超权.mp4 [80.8 MB]
8-8 实现Scope权限管理 二.mp4 [32.9 MB]
📁 第5章 理解WTForms并灵活改造她
5-1 重写WTForms 一.mp4 [24.2 MB]
5-3 可以接受定义的复杂,但不能接受调用的复杂.mp4 [74.5 MB]
5-2 重写WTForms 二.mp4 [83.1 MB]
5-4 已知异常与未知异常.mp4 [54.9 MB]
5-5 全局异常处理.mp4 [105.6 MB]
📁 第6章 Token与HTTPBasic验证 —— 用令牌来管理用户
6-1 Token概述.mp4 [33.8 MB]
6-6 以BasicAuth的方式发送Token.mp4 [18.3 MB]
6-4 @auth拦截器执行流程.mp4 [72.8 MB]
6-3 Token的用处.mp4 [45.1 MB]
6-7 验证Token.mp4 [97.5 MB]
6-8 重写first_or_404与get_or_404.mp4 [59.0 MB]
6-2 获取Token令牌.mp4 [123.9 MB]
6-5 HTTPBasicAuth基本原理.mp4 [50.5 MB]
📁 第4章 自定义异常对象
4-5 完成客户端注册.mp4 [148.8 MB]
4-9 自定义APIException.mp4 [114.8 MB]
4-1 关于“用户”的思考.mp4 [46.6 MB]
4-6 生成用户数据.mp4 [57.1 MB]
4-8 浅谈异常返回的标准与重要性.mp4 [22.7 MB]
4-4 创建User模型.mp4 [124.9 MB]
4-7 自定义异常对象.mp4 [117.5 MB]
4-2 构建Client验证器.mp4 [59.9 MB]
4-3 处理不同客户端注册的方案.mp4 [50.1 MB]
📁 第7章 模型对象的序列化
第7章 模型对象的序列化必看.png [493.5 KB]
7-1 鸡汤?.mp4 [58.5 MB]
7-8 ViewModel对于API有意义吗.mp4 [49.6 MB]
7-4 深入理解dict的机制.mp4 [63.4 MB]
7-5 一个元素的元组要特别注意.mp4 [15.5 MB]
7-3 不完美的对象转字典.mp4 [85.4 MB]
7-7 完善序列化.mp4 [103.2 MB]
7-2 理解序列化时的default函数.mp4 [109.1 MB]
7-6 序列化SQLAlchemy模型.mp4 [54.0 MB]
📁 资料
ginger.zip [48.5 KB]
flask-api-profile.rar [1.2 KB]
little.zip [400.2 KB]
project.zip [1.5 KB]
📁 第3章 REST基本特征
3-1 REST的最基本特征(可选观看).mp4 [13.1 MB]适合人群
- Python开发者
- 后端工程师
学习收获
祝您学习愉快!
学有所成,前程似锦!





![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=https%3A%2F%2Fwww.itzhibei.com%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)
