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

Python Flask构建可扩展的RESTful API

[复制链接]
累计签到:6 天
连续签到:2 天
发表于 2019-3-1 15:20:56 | 显示全部楼层 |阅读模式
本帖最后由 xuenv2005 于 2019-3-1 16:07 编辑 5 t; n" p0 V& c, N5 t. S( D) N; v
; h0 D4 T- w$ G
第1章 随便聊聊
' k" N! E! e$ g* N* ]% a聊聊Flask与Django,聊聊代码的创造性
( C/ j; o; v' ^8 o: q* m6 L2 a8 @
1-1 Flask VS Django
: g7 f: u4 J/ ~. V. n1 n( E& R 1-2 课程更新维护说明+ R  l9 Z0 ^2 I0 p9 J
第2章 起步与红图# ^5 p& F" [% I% L5 D) S* \
本章我们初始化项目,探讨与研究Flask的默认层级结构。当我们遇到层级结构不合理时,我们将模仿蓝图自己定义一个“红图”来扩展Flask层级体系9 N& ]/ Q) |" J1 f7 s

: h' U! t4 \% T9 t' p8 l. e 2-1 环境、开发工具与flask1.0
: s  q/ L( F4 \ 2-2 初始化项目 试看4 E9 a5 x1 P! N; n' d1 o
2-3 新建入口文件 试看/ s( ^5 e' Q6 k8 u3 K% F2 S( E
2-4 蓝图分离视图函数的缺陷
8 ?+ X3 W0 Z2 q7 k7 P 2-5 打开思维,创建自己的Redprint——红图2 _) @5 I! Y. p0 B% B
2-6 实现Redprint. u! e3 _3 B+ g8 y3 a
2-7 优化Redprint
" l# d" f  a4 G3 o6 A1 D第3章 REST基本特征
. `2 m8 j' [6 f* g6 \' g3 d本章我们将探讨REST的基本特征,并结合实际情况给出REST的适用范围与优劣势4 g" J* \# V( `2 W) `: a" i. A

! e; [( p3 f! ~4 Z+ X 3-1 REST的最基本特征
4 p2 _( A# p8 N+ Q. [ 3-2 为什么标准REST不适合内部开发) o  J! V9 X& p8 t( B
第4章 自定义异常对象7 ~; O9 H/ k7 X5 v6 d
异常处理其实是一个非常严肃而又麻烦的事情,这直接涉及到前端如何对用户做出响应。本章我们将重写HTTPException并建立全局异常处理机制,统一处理框架内的异常,向前端返回统一而标准的异常信息,简化前端的开发流程9 [8 p1 U# X4 r

% M5 W2 k1 H) f; D 4-1 关于“用户”的思考3 x' m2 v. j6 D& c7 G* h  Q
4-2 构建Client验证器1 X. p. s! K$ [: f+ p2 e
4-3 处理不同客户端注册的方案& d$ n9 H. w9 W7 s8 g. J5 x6 Z
4-4 创建User模型
6 l4 w* x1 k5 f& w1 c. ~" | 4-5 完成客户端注册
5 C# B0 e& b, g3 q 4-6 生成用户数据
0 l7 M. O+ O$ U6 y7 y 4-7 自定义异常对象0 ?( L3 v/ ?1 V
4-8 浅谈异常返回的标准与重要性, q6 ^. M: X% ^: W  `
4-9 自定义APIException
  P( _8 n, T0 h5 t第5章 理解WTForms并灵活改造她
7 _% f* H( `/ j, E5 b( RWTForms其实是非常强大的验证插件。但很多同学对WTForms的理解仅仅停留在“验证表单”上。那WTForms可以用来做API的参数验证码?完全可以,但这需要你灵活的使用它,对它做出一些“改变”/ \9 `) _$ v- v' j5 _, g

1 ]6 d. Q+ @+ r. t5 K: z 5-1 重写WTForms 一
0 z1 n7 P& H- D( Y' s1 j4 H 5-2 重写WTForms 二( \9 O$ y6 w9 E0 w4 X' {
5-3 可以接受定义的复杂,但不能接受调用的复杂
2 n) T1 \' \; E6 Y/ g9 ^: g- ^ 5-4 已知异常与未知异常
( P6 A/ N6 [$ c$ w+ k3 } 5-5 全局异常处理
# x; g# T) x) n; f第6章 Token与HTTPBasic验证 —— 用令牌来管理用户
& e- ]' B( t1 m5 Z, Y( m4 S" A) A( Q在我的TP5课程里,我们使用令牌的方式是服务器缓存的方式。那么在Python Flask中我们换一种令牌的发放方式。我们将用户的信息加密后作为令牌返回到客户端,客户端在访问服务器API时必须以HTTP Basic的方式携带令牌,我们再读取令牌信息后,将用户信息存入到g变量中,共业务代码全局使用...
* q' b; M4 U: |- f; D) k) x) b1 e4 y% |& Z9 v
6-1 Token概述
* q5 Q1 B: [# M9 U& M+ W 6-2 获取Token令牌
( w. N0 Z( A9 [4 j 6-3 Token的用处
$ w- i- [0 B7 h5 @ 6-4 @auth拦截器执行流程9 [( Z2 a0 V: f" f( u6 {& r
6-5 HTTPBasicAuth基本原理) I5 p* D! t/ `4 ~- a
6-6 以BasicAuth的方式发送Token
, b* Z2 u3 y' [ 6-7 验证Token) d8 j3 F: V* r0 E
6-8 重写first_or_404与get_or_404' ?6 I0 f. h! }- M9 {0 _
第7章 模型对象的序列化
4 J# r7 n  A* }: R7 Y# Z% L最适合Python JSON序列化的是dict字典类型,每一种语言都有其对应的数据结构用来对应JSON对象,比如在PHP中是它的数组数据结构。而Python是用字典来对应JSON的。如果我们想直接序列化一个对象或者模型对象,那么最笨的办法是把对象的属性读取出来,然后组装成一个字典再序列化。这实在是太麻烦了。本章节我们将深入了解JSO...
% y" a: D" @4 F* p0 U9 i  F& ]: l0 }2 t) o6 Y
7-1 鸡汤?7 p9 _8 z4 {1 F4 Z3 o
7-2 理解序列化时的default函数
6 ^4 s9 E/ {. ^ 7-3 不完美的对象转字典- v. b% ^+ T  v" D; d
7-4 深入理解dict的机制
$ i" y) \; ?% }6 t. B2 ^! E 7-5 一个元素的元组要特别注意
. a( u6 [; M1 K 7-6 序列化SQLAlchemy模型
8 Q5 f" w( ?5 r: j0 U. y0 \/ \ 7-7 完善序列化
3 v/ O5 L) k# [ 7-8 ViewModel对于API有意义吗- Z4 G# K4 [  P1 d/ w
第8章 权限控制4 C+ W' W7 [1 O# F5 T6 {
我看过太多同学编写的API在互联网上疯狂的裸奔了。殊不知这太危险了。API必须提供分层保护机制,根据不同用户的种类来限制其可以访问的API,从而保护接口。比如管理员可以访问哪些接口,普通用户可以访问哪些接口,小程序可以访问哪些,APP又能够访问哪些?灵活而强大的可配置Scope,可以帮助你事半功倍...
5 g2 @4 c/ f3 k+ r0 X; v0 p
6 b4 y) d; I* a" z1 T9 ^ 8-1 删除模型注意事项; M& {6 _& s" r
8-2 g变量中读取uid防止超权' U. M( q3 X2 b3 s) X
8-3 生成超级管理员账号) T/ C* x# [: T$ r
8-4 不太好的权限管理方案
) O  X) i/ U( i* q; z3 L' n 8-5 比较好的权限管理方案* ^" p* A# B8 V/ x' q
8-6 实现Scope权限管理 一# O$ U  O+ X" P! N
8-7 globals()实现“反射”. E' P  O8 o) k- M
8-8 实现Scope权限管理 二
% Q+ v# J( `$ {- C# ] 8-9 Scope优化一 支持权限相加
  x$ b5 a+ v  H4 e 8-10 Scope优化 二 支持权限链式相加4 I! I% r5 k8 d5 w& H, u, L
8-11 Scope优化 三 所有子类支持相加
5 b: S  O9 E! B' c8 n) l 8-12 Scope优化 四 运算符重载
4 i2 t% v) Z! T- @% L$ c, Y 8-13 Scope 优化 探讨模块级别的Scope- b' U9 ?+ F0 z8 _# @: h. V
8-14 Scope优化 实现模块级别的Scope
. ?1 U. G, H8 Z4 J% G3 @3 W$ U5 | 8-15 Scope优化 七 支持排除
# L- m; V  P$ l) i) T第9章 实现部分鱼书小程序功能
0 w) i* {3 x, P, V理论必须结合实践,我们提供一个简单的鱼书小程序,编写他的业务接口,并用小程序来进行API的检验- `$ h; R2 @3 I( H1 z
( j  T4 f3 \( ^7 L1 h0 t
9-1 小程序演示API调用效果1 U* I4 R# P) {, a
9-2 模糊搜索书籍) K- g2 V, b2 H0 P
9-3 再谈严格型REST的缺陷4 I( w$ v( j$ T# v3 S! ]/ ^
9-4 实现hide方法
. x! C* ~$ G& k, J. W 9-5 @orm.reconstructor 解决模型对象实例化问题/ Z+ R3 P" ], {7 y$ e
9-6 重构hide与append
8 a/ m. q- u* Y; O3 [7 F 9-7 赠送礼物接口. j% l* R5 u0 w; c
9-8 实现获取令牌信息接口5 X; l* F5 K6 m" p4 J

# D3 i% \' z! V8 E& r6 [

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-8-25 14:00

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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