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

Python Flask构建可扩展的RESTful API

[复制链接]
累计签到:6 天
连续签到:2 天
发表于 2019-3-1 15:20:56 | 显示全部楼层 |阅读模式
本帖最后由 xuenv2005 于 2019-3-1 16:07 编辑
. Z) u) s& D) |3 V- h0 z, S; }& C8 [5 d
第1章 随便聊聊
7 k8 O! z) e$ O# b5 A+ |; a" ^聊聊Flask与Django,聊聊代码的创造性
' P: P$ S( U& t) [  W; R% a7 V4 |: ~/ E4 W
1-1 Flask VS Django& k3 S0 \3 x! ~7 M7 m5 S
1-2 课程更新维护说明
9 F) q! @  a4 w1 B, `8 a7 f( @第2章 起步与红图
+ j7 i" s1 I% y0 A- w9 d3 @本章我们初始化项目,探讨与研究Flask的默认层级结构。当我们遇到层级结构不合理时,我们将模仿蓝图自己定义一个“红图”来扩展Flask层级体系
2 L4 w5 d" o! B+ C6 a/ y8 G
- J- g7 T, C7 }- _ 2-1 环境、开发工具与flask1.0
' \8 M- x3 `' j0 t: L 2-2 初始化项目 试看
0 c# @& m' r, D5 y 2-3 新建入口文件 试看
0 o8 l- V, M, }- I- v+ P( h2 L, ~ 2-4 蓝图分离视图函数的缺陷. O5 u2 @" w. H8 Q% Z
2-5 打开思维,创建自己的Redprint——红图3 ^5 Q' J9 w) a- l3 j6 U! R4 W
2-6 实现Redprint
* P6 V9 }) |! O 2-7 优化Redprint, v$ l% L0 A- e  x$ \* ?
第3章 REST基本特征7 t0 y  `) \8 j* w3 [
本章我们将探讨REST的基本特征,并结合实际情况给出REST的适用范围与优劣势
- p2 L$ ~: p3 p$ f/ }
/ X$ J0 D  ?5 H( I, ^+ Y 3-1 REST的最基本特征3 O. m* T7 e+ M3 R7 l) B
3-2 为什么标准REST不适合内部开发9 q5 D/ N5 H& O5 j& T$ G
第4章 自定义异常对象' S) [. ^8 _1 Y5 M
异常处理其实是一个非常严肃而又麻烦的事情,这直接涉及到前端如何对用户做出响应。本章我们将重写HTTPException并建立全局异常处理机制,统一处理框架内的异常,向前端返回统一而标准的异常信息,简化前端的开发流程. R) a+ y  l  j7 G$ n
  C- P. `' ^6 l+ p9 P, b1 I
4-1 关于“用户”的思考
1 u% w. B; F) p5 o5 R9 p  J. S 4-2 构建Client验证器7 s6 S% y' i) A
4-3 处理不同客户端注册的方案
- w6 N; B' D, P$ h3 R 4-4 创建User模型3 G: G8 M, ~$ y( A' h! Y
4-5 完成客户端注册
4 F# s& F/ h1 A* H 4-6 生成用户数据# T  n) p+ D* T7 Y) C! w
4-7 自定义异常对象9 r, H( l+ E( Y+ g8 i% k
4-8 浅谈异常返回的标准与重要性" T, {0 S9 \7 c6 m' E
4-9 自定义APIException
2 ?% l# d: R# B5 S6 l  T; C第5章 理解WTForms并灵活改造她
! D$ c- x- t- A0 _# [" b2 K4 d+ ?: rWTForms其实是非常强大的验证插件。但很多同学对WTForms的理解仅仅停留在“验证表单”上。那WTForms可以用来做API的参数验证码?完全可以,但这需要你灵活的使用它,对它做出一些“改变”. `) A. y0 F/ X) o# T1 P
$ N- U4 D& n- [! ^0 X) l
5-1 重写WTForms 一
/ F! U/ _7 F. y9 Z* ?9 B; D 5-2 重写WTForms 二
5 Q( H' o; e6 J* w: T. Y 5-3 可以接受定义的复杂,但不能接受调用的复杂
( p4 z4 i9 j7 ~8 p4 _4 @ 5-4 已知异常与未知异常* R; z/ w/ j5 m1 P# w( a
5-5 全局异常处理  f& t* ]. H( T: b3 ^* i
第6章 Token与HTTPBasic验证 —— 用令牌来管理用户
% Z2 X+ W. L2 `$ K在我的TP5课程里,我们使用令牌的方式是服务器缓存的方式。那么在Python Flask中我们换一种令牌的发放方式。我们将用户的信息加密后作为令牌返回到客户端,客户端在访问服务器API时必须以HTTP Basic的方式携带令牌,我们再读取令牌信息后,将用户信息存入到g变量中,共业务代码全局使用..." z" y& X1 \8 m5 c7 e
6 q* T7 z0 Z; f& T% D
6-1 Token概述- t$ E4 Q. j6 j8 K& [
6-2 获取Token令牌
0 E. C+ ^6 {7 Q1 l  Q 6-3 Token的用处# `' t" p) a2 z  ]2 y& s
6-4 @auth拦截器执行流程; i! {! g5 l8 X* x4 q1 |1 K
6-5 HTTPBasicAuth基本原理# H' g: ?/ o  \9 \8 D. t# H
6-6 以BasicAuth的方式发送Token
' b1 h$ T, z6 } 6-7 验证Token
% ~: @& x" C; N6 ` 6-8 重写first_or_404与get_or_4040 s: Z5 u. O) S1 H
第7章 模型对象的序列化
" T4 V/ h" V$ V9 R2 h最适合Python JSON序列化的是dict字典类型,每一种语言都有其对应的数据结构用来对应JSON对象,比如在PHP中是它的数组数据结构。而Python是用字典来对应JSON的。如果我们想直接序列化一个对象或者模型对象,那么最笨的办法是把对象的属性读取出来,然后组装成一个字典再序列化。这实在是太麻烦了。本章节我们将深入了解JSO...
: h* p7 b" J. Q+ u8 p; U  ~" f5 y% w5 l$ N
7-1 鸡汤?: K- m- f  f& G: F+ T! G3 |, y' `
7-2 理解序列化时的default函数+ e' o% w9 C' e* Y
7-3 不完美的对象转字典
7 J# W8 L4 w0 I  E- J 7-4 深入理解dict的机制, K# v9 k* _# h; |: q
7-5 一个元素的元组要特别注意
  ~6 S; s# l" }% P% h5 S. l* N 7-6 序列化SQLAlchemy模型
6 }9 k6 {' I$ j$ K 7-7 完善序列化7 W* G' X5 b7 Z5 U
7-8 ViewModel对于API有意义吗
' \( `+ b: T- m第8章 权限控制# s* P5 u  U% J/ F: w+ c* K+ b. `
我看过太多同学编写的API在互联网上疯狂的裸奔了。殊不知这太危险了。API必须提供分层保护机制,根据不同用户的种类来限制其可以访问的API,从而保护接口。比如管理员可以访问哪些接口,普通用户可以访问哪些接口,小程序可以访问哪些,APP又能够访问哪些?灵活而强大的可配置Scope,可以帮助你事半功倍...6 Y8 q' M% \; x+ n

) L) U  {7 C" h' d% G 8-1 删除模型注意事项
$ F- }" ^3 m9 X' g) p% E 8-2 g变量中读取uid防止超权
6 V6 ~8 J: Q9 Q+ G$ @7 [4 x 8-3 生成超级管理员账号
, q3 @3 f. v7 t2 o: w9 j( S$ h 8-4 不太好的权限管理方案# ^- o6 U, I. j! Y0 d3 H
8-5 比较好的权限管理方案
$ E  _6 D7 y) c1 ?& f# { 8-6 实现Scope权限管理 一+ v* u8 c( U* w
8-7 globals()实现“反射”5 c2 J. z" ], G4 ^5 ^- ]
8-8 实现Scope权限管理 二
/ \7 G6 g  {/ [/ _  }" n1 E% n) z0 s 8-9 Scope优化一 支持权限相加
  t5 C; T! w& D) r  |; x 8-10 Scope优化 二 支持权限链式相加0 T5 H  r. F' E4 h% R
8-11 Scope优化 三 所有子类支持相加
& G' u) x5 u$ s. i. ]" Y6 r 8-12 Scope优化 四 运算符重载
( I6 @* H% W5 {! g' q3 l 8-13 Scope 优化 探讨模块级别的Scope6 ?9 N3 o9 A: V- [1 Z1 `
8-14 Scope优化 实现模块级别的Scope$ S7 J1 Y. C' `9 k
8-15 Scope优化 七 支持排除
2 e" S1 z2 c4 Z3 w2 f- D第9章 实现部分鱼书小程序功能" ~. p* D% i7 b8 |; c5 V
理论必须结合实践,我们提供一个简单的鱼书小程序,编写他的业务接口,并用小程序来进行API的检验- C9 H$ B% {% k6 W( ~3 y

. B+ @) p8 [7 ^ 9-1 小程序演示API调用效果
: |! t5 A. C5 I 9-2 模糊搜索书籍
5 N: p" o3 ?: i- S5 @) J 9-3 再谈严格型REST的缺陷5 z* S/ T: s# m* g6 d4 I& Z) X
9-4 实现hide方法
  I8 h- N5 @7 Y. ]6 w8 W6 G 9-5 @orm.reconstructor 解决模型对象实例化问题
( e. B' M, a, }2 Y2 t/ g 9-6 重构hide与append4 D! f$ M3 F7 U0 s1 v
9-7 赠送礼物接口
4 u& H/ O# f2 B6 ^" P7 u 9-8 实现获取令牌信息接口5 v+ o, |3 s. r5 h: R

6 N+ k3 Q6 f3 i; O; @

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

点击这里给我发消息

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

GMT+8, 2026-4-27 01:17

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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