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

Python Flask构建可扩展的RESTful API

[复制链接]
累计签到:6 天
连续签到:2 天
发表于 2019-3-1 15:20:56 | 显示全部楼层 |阅读模式
本帖最后由 xuenv2005 于 2019-3-1 16:07 编辑
3 k  B# Q3 t- |% K" }8 I: T! B$ U- H/ @% ~; o
第1章 随便聊聊  r- `/ l3 B# V8 x
聊聊Flask与Django,聊聊代码的创造性% U' G8 o, k4 j# ^' B

& A; ]5 ]( [5 F" c( H# E3 W$ B" i/ { 1-1 Flask VS Django" L4 g1 a) n6 ~7 d
1-2 课程更新维护说明
! {) l) H6 g  V. c& p第2章 起步与红图
* I! Y8 Q. S& H0 `: a本章我们初始化项目,探讨与研究Flask的默认层级结构。当我们遇到层级结构不合理时,我们将模仿蓝图自己定义一个“红图”来扩展Flask层级体系
; H9 U" P! |, a+ a. d; s" ~/ n2 E) Z( R
2-1 环境、开发工具与flask1.0$ \5 F* q) L. d2 f
2-2 初始化项目 试看$ A3 \+ O/ Y. u
2-3 新建入口文件 试看& b6 {7 B; U9 {% T
2-4 蓝图分离视图函数的缺陷' \' B. v' W2 c: t7 n
2-5 打开思维,创建自己的Redprint——红图9 k6 A: V0 `  q( H* t) }
2-6 实现Redprint
1 i0 P; ~$ X* x2 l- B$ t 2-7 优化Redprint9 O6 ?8 C" z! Z0 v. s0 m
第3章 REST基本特征
+ m- b4 i+ {% b8 W8 ^6 u本章我们将探讨REST的基本特征,并结合实际情况给出REST的适用范围与优劣势6 N6 o6 `( ~& X3 D' @6 U3 x; D

( F# m; ?( ?) L7 Z4 s' N7 K 3-1 REST的最基本特征1 R8 d3 n5 N5 a
3-2 为什么标准REST不适合内部开发
0 _8 D' I! T, r6 H; x第4章 自定义异常对象- k5 A; U8 W/ n* |. l- Z5 m
异常处理其实是一个非常严肃而又麻烦的事情,这直接涉及到前端如何对用户做出响应。本章我们将重写HTTPException并建立全局异常处理机制,统一处理框架内的异常,向前端返回统一而标准的异常信息,简化前端的开发流程; d$ A" y' p. d% F3 f0 U1 |4 O# M

( e( w$ V8 x, x) w 4-1 关于“用户”的思考. B- f1 v8 `# r; D0 U: H' H
4-2 构建Client验证器
$ {  s  z; Z% T2 V( k 4-3 处理不同客户端注册的方案6 `  h, x& r. i
4-4 创建User模型1 i) [" I- r" H0 P
4-5 完成客户端注册, A: E2 g0 \7 B0 x" b* s. r9 t
4-6 生成用户数据
) c/ y8 S9 a6 u; c% ~8 u. v 4-7 自定义异常对象
! p: G# F8 u+ c+ P/ _- T/ j 4-8 浅谈异常返回的标准与重要性- ^) a) ?3 x8 I% F& [
4-9 自定义APIException; v& q) o% J1 c4 O8 N# f$ ^
第5章 理解WTForms并灵活改造她
, v1 k( w$ G5 }3 G* IWTForms其实是非常强大的验证插件。但很多同学对WTForms的理解仅仅停留在“验证表单”上。那WTForms可以用来做API的参数验证码?完全可以,但这需要你灵活的使用它,对它做出一些“改变”7 S& w, R; `: G( U/ T! z
) E( \: j$ s. ?1 I) P
5-1 重写WTForms 一
6 g  K; Q* {5 l: T( @; O 5-2 重写WTForms 二
5 @/ I- B& O3 @2 t9 W, s 5-3 可以接受定义的复杂,但不能接受调用的复杂; R1 x5 F( g% ?# i
5-4 已知异常与未知异常+ A! I- k. E: A! G! m  t; _$ E
5-5 全局异常处理
# ]5 w$ ]) d& n* \' E, N7 s" a第6章 Token与HTTPBasic验证 —— 用令牌来管理用户9 Q# C5 F! z- ]" M9 o
在我的TP5课程里,我们使用令牌的方式是服务器缓存的方式。那么在Python Flask中我们换一种令牌的发放方式。我们将用户的信息加密后作为令牌返回到客户端,客户端在访问服务器API时必须以HTTP Basic的方式携带令牌,我们再读取令牌信息后,将用户信息存入到g变量中,共业务代码全局使用...7 Q/ l3 u4 D  N. ]# v' M  q

0 r1 s8 A4 Z% H2 a* x1 U* r 6-1 Token概述
0 ~! H& A. F5 s& V1 q/ `3 _/ U 6-2 获取Token令牌
$ f" j5 n( \& f# H, y7 s5 E& q 6-3 Token的用处& q' m& E) J5 u+ \( P+ i
6-4 @auth拦截器执行流程" [" h* e/ P4 G1 s+ h  b% @  Y- ]
6-5 HTTPBasicAuth基本原理. Z+ M& w+ q, `& t6 e! m
6-6 以BasicAuth的方式发送Token# U4 |! _; @$ ^% ]  ~; `+ d
6-7 验证Token
( l! k( e0 y' \  |- _. { 6-8 重写first_or_404与get_or_404/ x% P& a7 e, ]5 f4 b
第7章 模型对象的序列化" g, U  ~0 y" z5 W: q6 S# y+ R$ _
最适合Python JSON序列化的是dict字典类型,每一种语言都有其对应的数据结构用来对应JSON对象,比如在PHP中是它的数组数据结构。而Python是用字典来对应JSON的。如果我们想直接序列化一个对象或者模型对象,那么最笨的办法是把对象的属性读取出来,然后组装成一个字典再序列化。这实在是太麻烦了。本章节我们将深入了解JSO...* v: P, W1 V: o( q
, G& Z+ k/ S7 t
7-1 鸡汤?
3 `! r" e& L+ o$ g, r3 Z 7-2 理解序列化时的default函数
( E9 z7 B+ R; {7 F4 ]% n: S 7-3 不完美的对象转字典
# L: y5 {& i! V$ a- [1 M5 ~* z# F 7-4 深入理解dict的机制
% r1 ]9 c# X; u+ ^! D; c8 ^8 Q 7-5 一个元素的元组要特别注意) Y: ~4 ^, r6 |$ u& N5 b& ~
7-6 序列化SQLAlchemy模型, f% \+ m/ {$ e. |
7-7 完善序列化% v$ a. N/ S; ?! v
7-8 ViewModel对于API有意义吗
, u: W% F7 @+ v* q! A2 ?第8章 权限控制6 I+ M! B) @5 ~; `
我看过太多同学编写的API在互联网上疯狂的裸奔了。殊不知这太危险了。API必须提供分层保护机制,根据不同用户的种类来限制其可以访问的API,从而保护接口。比如管理员可以访问哪些接口,普通用户可以访问哪些接口,小程序可以访问哪些,APP又能够访问哪些?灵活而强大的可配置Scope,可以帮助你事半功倍...( P, U/ r, R0 [  t& r9 |( P8 V+ w3 T

' w: R# U$ I) ]$ U8 s2 f& K 8-1 删除模型注意事项
$ U; s5 E) d1 {4 Q 8-2 g变量中读取uid防止超权, a5 `6 o; X, U( g
8-3 生成超级管理员账号
! C  ?' Y8 b; c2 ? 8-4 不太好的权限管理方案
( ^. }6 W7 U+ Z# G4 @- M 8-5 比较好的权限管理方案/ M4 V$ p- ~7 i+ t
8-6 实现Scope权限管理 一2 t3 K6 F8 ^* l, K5 U/ j
8-7 globals()实现“反射”
) H# j8 D9 H4 W 8-8 实现Scope权限管理 二
6 W" Y& k( a0 q- O3 k 8-9 Scope优化一 支持权限相加7 j& G) u2 D% \8 _  ^8 o* L
8-10 Scope优化 二 支持权限链式相加0 ~: i: _6 \$ G3 W& q
8-11 Scope优化 三 所有子类支持相加- F# V# _$ b7 P+ z* }$ m9 b
8-12 Scope优化 四 运算符重载
. `- T/ N, j8 p  ^ 8-13 Scope 优化 探讨模块级别的Scope- X* ?0 Z0 F- D9 |" ?
8-14 Scope优化 实现模块级别的Scope
1 G' t2 A, @5 b5 }5 E 8-15 Scope优化 七 支持排除
3 k' c: P# p$ e第9章 实现部分鱼书小程序功能
) G7 X( X7 D" k7 D, A理论必须结合实践,我们提供一个简单的鱼书小程序,编写他的业务接口,并用小程序来进行API的检验
# X# ?' r3 V7 x% j6 P% t. I
5 L' \: ?+ C) W9 ` 9-1 小程序演示API调用效果% P) q1 a/ q0 A6 K8 }3 |1 Y
9-2 模糊搜索书籍0 i! Z5 ^4 K$ i' K7 h' A/ J
9-3 再谈严格型REST的缺陷! n) Q+ C% Q, }' g
9-4 实现hide方法
% u, C- \, ]+ H) b. R1 a* h 9-5 @orm.reconstructor 解决模型对象实例化问题
+ B1 x+ N& E8 |: ~ 9-6 重构hide与append
; }# b" ~( T" } 9-7 赠送礼物接口* i9 V  q7 E: O2 R1 `- ]9 c) ?
9-8 实现获取令牌信息接口8 s& g# ?. N' Y: U

7 ~( g" B4 P4 y5 H7 A1 q' o

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-8-26 12:10

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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