1. 起步与红图

前言

flask VS Django

可以理解为安装各种插件的 flask = Django

1.1 初始化项目

1.一个项目的初始化流程如下:

image

2.新建入口文件

app/init.py

ginger.py

1.2 红图

1.蓝图拆分视图函数的缺陷的缺陷

1.蓝图的作用并不是用来拆分视图函数的,而是用来拆分模块的 2.使用蓝图,统一个业务模型的试图函数的前缀都一样,代码重复啰嗦

2.打开思维,创建自己的redprint-红图

为了解决上面的两个问题,我们可以模仿蓝图,构建一个自定义的对象-红图,红图的定位是用来拆分视图,也就是视图函数层

image

我们采用自顶向下的编程思想,先编写redprint在试图函数中的使用代码,再编写redprint具体的实现

2.1 视图函数向红图的注册

app/api/v1/book.py

app/api/v1/user.py

2.2 红图向蓝图的注册

app/api/init.py

2.3 蓝图向Flask核心对象的注册

app/app.py

3.实现Redprint

因为我们的红图的作用就是要代替蓝图来实现试图函数的拆分,所以功能实现上可以参考蓝图的实现。

3.1 装饰性route的实现

蓝图的实现

红图的实现可以模仿蓝图的实现结构 ,由于红图的route里没有办法拿到蓝图的对象,所以我们可以先把他们存储起来,等碰到的时候再进行注册

3.2 register方法

在register方法中可以获取到蓝图对象,所以之前route中视图函数的注册延迟到这里进行

流程梳理

  1. 模仿Blueprint自定义Redprint

  2. app/api/v1/book.py中实例化一个Redprint 来注册视图函数。

  3. app/api/v1/init.py 中创建一个Bluerint,把Redprint注册到Blueprint上,并传入Redprint一个前缀,如: '/book'

  4. 在app/init.py 中 将Blueprint注册到flask核心对象上,并传入一个前缀,如: '/v1'

Last updated

Was this helpful?