很多人写 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前后端分离的精髓。

课程亮点

• 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开发者
  • 后端工程师

学习收获

熟练使用Flask框架
构建RESTful API
提升后端开发能力

祝您学习愉快!

学有所成,前程似锦!