找回密码
 立即注册
查看: 782|回复: 0

Python Flask构建可扩展的RESTful API

[复制链接]
累计签到:6 天
连续签到:2 天
发表于 2019-3-1 15:20:56 | 显示全部楼层 |阅读模式
本帖最后由 xuenv2005 于 2019-3-1 16:07 编辑
$ p# _4 ?5 m9 A0 b) S# q0 `/ {( k4 j! n1 d2 Q7 K
第1章 随便聊聊
8 N7 F; o: ]. G  `: i9 n聊聊Flask与Django,聊聊代码的创造性
* i" T* _( y  d" H# H* F
. m. e1 I) w( ^9 v 1-1 Flask VS Django
* B4 h8 X! G1 t7 Y 1-2 课程更新维护说明/ l: G% D! y# H; W4 l
第2章 起步与红图
: U2 Y6 L) N" M% z9 ]本章我们初始化项目,探讨与研究Flask的默认层级结构。当我们遇到层级结构不合理时,我们将模仿蓝图自己定义一个“红图”来扩展Flask层级体系
4 B9 R: d% f! V& I/ k7 F) I) Q4 Y# w* @! J
2-1 环境、开发工具与flask1.04 i4 z# G& i3 x+ z
2-2 初始化项目 试看/ }: Q0 ?( W( H1 @& A4 A2 B) n
2-3 新建入口文件 试看4 v0 _) s# ]  g2 i  `% ]+ F2 }
2-4 蓝图分离视图函数的缺陷
: c7 o5 O0 l) h) }5 R! S: B: j6 r 2-5 打开思维,创建自己的Redprint——红图
/ \/ a( a2 S, W3 q 2-6 实现Redprint
, P' {/ t; C' a' s" p+ x 2-7 优化Redprint% k8 ~9 ^! S. S* w/ X. k6 V. A
第3章 REST基本特征, J( o+ Y) n2 V: F1 U
本章我们将探讨REST的基本特征,并结合实际情况给出REST的适用范围与优劣势
# x+ g& B8 f4 i7 y+ e) J( Z, P. N/ }% ~: D
3-1 REST的最基本特征
) S4 c# B" a' |* `6 X7 @. ? 3-2 为什么标准REST不适合内部开发# D9 D* i. ^+ E- {1 e
第4章 自定义异常对象, V; o! S* I+ T, V4 d1 W
异常处理其实是一个非常严肃而又麻烦的事情,这直接涉及到前端如何对用户做出响应。本章我们将重写HTTPException并建立全局异常处理机制,统一处理框架内的异常,向前端返回统一而标准的异常信息,简化前端的开发流程# G) @$ x# y' K6 v: c" t# |, g

' k1 o* o+ X* S, i' F' Z3 O 4-1 关于“用户”的思考
7 ^$ j8 y% M3 F1 v' Z4 V 4-2 构建Client验证器' {$ ^" ]0 n7 X( v7 W  j% T
4-3 处理不同客户端注册的方案2 \' W9 w6 E3 O
4-4 创建User模型7 p( h9 a/ w* V, \
4-5 完成客户端注册* y4 e% ]0 b* v0 c4 s: v- ~  X
4-6 生成用户数据
/ O; k# z* l) {  I  ] 4-7 自定义异常对象2 C9 |: R5 D/ w3 R0 u1 |" o0 c
4-8 浅谈异常返回的标准与重要性
$ A" u$ t) u9 e. x 4-9 自定义APIException
# W- O$ i3 R/ d4 z+ }( x第5章 理解WTForms并灵活改造她. I7 L$ F4 A: ~& J* _
WTForms其实是非常强大的验证插件。但很多同学对WTForms的理解仅仅停留在“验证表单”上。那WTForms可以用来做API的参数验证码?完全可以,但这需要你灵活的使用它,对它做出一些“改变”
1 B' T, Q! |% n8 @8 @! U) [% g
5-1 重写WTForms 一+ X. ]3 \1 E& {# e$ x. I
5-2 重写WTForms 二. W6 Z8 h; Z) _$ k& |
5-3 可以接受定义的复杂,但不能接受调用的复杂6 @. t2 ?8 z  y* k# {
5-4 已知异常与未知异常
$ E! Y' x5 U: y, S, C8 f* z& O 5-5 全局异常处理+ y0 y3 ^6 r  R1 E( _
第6章 Token与HTTPBasic验证 —— 用令牌来管理用户
9 P- K8 B; a( D0 E  a在我的TP5课程里,我们使用令牌的方式是服务器缓存的方式。那么在Python Flask中我们换一种令牌的发放方式。我们将用户的信息加密后作为令牌返回到客户端,客户端在访问服务器API时必须以HTTP Basic的方式携带令牌,我们再读取令牌信息后,将用户信息存入到g变量中,共业务代码全局使用...
* O7 S4 c. ]1 D% U, [7 W- B& }5 P9 O  q" i
6-1 Token概述) ]$ ^$ o% P6 K, E. M  V, X) R/ l
6-2 获取Token令牌9 Y$ Y& ~8 ?$ x% A8 j: T
6-3 Token的用处" L( ?9 Y8 u5 o7 j7 }) v3 N( u
6-4 @auth拦截器执行流程7 F( f2 b0 Q( }9 C) C- v
6-5 HTTPBasicAuth基本原理
8 F6 x* v; w8 k" K 6-6 以BasicAuth的方式发送Token$ E- ]0 ~7 Q0 s0 u
6-7 验证Token
0 A$ x7 |+ |9 M8 r6 |+ Z1 Y0 n 6-8 重写first_or_404与get_or_404# }$ a/ h/ R( I( {# _; \) m
第7章 模型对象的序列化1 l  v& d. O3 U4 Z& }: C' y
最适合Python JSON序列化的是dict字典类型,每一种语言都有其对应的数据结构用来对应JSON对象,比如在PHP中是它的数组数据结构。而Python是用字典来对应JSON的。如果我们想直接序列化一个对象或者模型对象,那么最笨的办法是把对象的属性读取出来,然后组装成一个字典再序列化。这实在是太麻烦了。本章节我们将深入了解JSO...1 p5 Z1 j7 Y. s0 k. J8 Z
8 E# x8 B: G1 B& ^
7-1 鸡汤?
1 Z6 U( {/ H' u" }& ]& _" \ 7-2 理解序列化时的default函数
. e! ?' X% o$ S7 d 7-3 不完美的对象转字典& _- B' }2 ~8 U/ e" E+ A8 C. s5 @) O
7-4 深入理解dict的机制) c2 A! }9 ~8 D) G/ R# p. |! a
7-5 一个元素的元组要特别注意& D0 {1 X2 E1 q+ q7 g! m" A$ S# Y
7-6 序列化SQLAlchemy模型
# R1 E3 T( w( G; r0 P! J 7-7 完善序列化% @7 Q* a, t* T3 Q1 m
7-8 ViewModel对于API有意义吗  H: {4 ?! @2 [1 U: e6 X$ t
第8章 权限控制
5 P3 v" u$ Q1 V  E我看过太多同学编写的API在互联网上疯狂的裸奔了。殊不知这太危险了。API必须提供分层保护机制,根据不同用户的种类来限制其可以访问的API,从而保护接口。比如管理员可以访问哪些接口,普通用户可以访问哪些接口,小程序可以访问哪些,APP又能够访问哪些?灵活而强大的可配置Scope,可以帮助你事半功倍...  o( x& [* v( i" z. D5 {$ O7 j
0 _6 F. n# h7 v0 l
8-1 删除模型注意事项( @9 _) f" F7 o
8-2 g变量中读取uid防止超权0 t; z  y$ H0 P% U) k6 V
8-3 生成超级管理员账号( A0 `8 y+ ]% u& \& }2 O
8-4 不太好的权限管理方案
: ?$ _! l5 ?) h1 g 8-5 比较好的权限管理方案' A+ c0 ~  y% m/ x' L, r+ y
8-6 实现Scope权限管理 一( P' K8 b; K0 k; q/ ^- x' Y
8-7 globals()实现“反射”1 z) Z/ g) C( I2 T' _( y
8-8 实现Scope权限管理 二
, @, K% F! z" _9 ^- e/ A/ Q, @ 8-9 Scope优化一 支持权限相加+ G0 i$ M8 q0 `
8-10 Scope优化 二 支持权限链式相加1 B( \5 ~4 u- z, y, F4 i! p" b
8-11 Scope优化 三 所有子类支持相加
9 `$ G: x3 Y) O% ?% X& N: \$ S 8-12 Scope优化 四 运算符重载
- |; B* D4 c* m: s5 C9 R 8-13 Scope 优化 探讨模块级别的Scope9 J* \6 ^. a) }1 r- C9 I1 [
8-14 Scope优化 实现模块级别的Scope8 u' n$ b, F# O& ]: w3 H
8-15 Scope优化 七 支持排除
7 @  a, W9 [9 j) j% w) `' m! d第9章 实现部分鱼书小程序功能9 b. Z) X  A1 H5 t$ k
理论必须结合实践,我们提供一个简单的鱼书小程序,编写他的业务接口,并用小程序来进行API的检验, ?' t5 s$ {% z5 U. \$ V# I7 J
3 G# S4 k2 r1 k- J  a
9-1 小程序演示API调用效果
+ r5 i/ N6 N) g1 {; u9 a 9-2 模糊搜索书籍: _; Z- m' X  Y
9-3 再谈严格型REST的缺陷( |% a  @1 R& e
9-4 实现hide方法
& e1 Y3 O. X% P* _6 x 9-5 @orm.reconstructor 解决模型对象实例化问题" {& B# N( G" }" G+ o' {2 I. u
9-6 重构hide与append7 r9 t: H( N# w1 W- w+ n
9-7 赠送礼物接口
! v( q5 k. A% z! U  L 9-8 实现获取令牌信息接口( d5 y  h* ~, o, Q
! ]9 s" s" D# f' X, l8 Y

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

点击这里给我发消息

QQ|小黑屋|Archiver|手机版|一路学IT论坛 专业视频教程网站

GMT+8, 2026-7-11 01:24

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表