目标:使用红图的route方法来代替蓝图的route方法。
1.创建视图函数,将视图函数注册到红图中

api = Redprint("user")
@api.route("/get")
def get_user():return "视图函数"

2.将自定义的红图注册到蓝图中

def create_blueprint_v1():bp_v1 = Blueprint("/v1", __name__)book.api.register(bp_v1)user.api.register(bp_v1)return bp_v1

3.将蓝图注册到flask 核心app中

def register_my_blueprint(app):from app.api.v1 import create_blueprint_v1app.register_blueprint(create_blueprint_v1(), url_prefix="/v1")

4.创建flask对象,并将蓝图写入app中

def create_app():app = Flask(__name__)register_my_blueprint(app)return app

5.由于红图是自己定义的,所以红图的相关方法需要自己去构建,可以参照蓝图的相关方法来进行创建,需要自己写的方法包括如下几个:
(1)route【第一步中的route路由方法】
(2)register【第二步中的register注册方法】
6.创建方法先去查看蓝图的route方法,蓝图的route方法如下:

    def route(self, rule, **options):def decorator(f):endpoint = options.pop("endpoint", f.__name__)self.add_url_rule(rule, endpoint, f, **options)return freturn decorator

7,仿照着书写我们的方法:

class Redprint:def __init__(self, name):self.name = nameself.mound = []def route(self, rule, **options):def decorator(f):self.mound.append((f, rule, options))return freturn decoratordef register(self, bp, url_prefix=None):if url_prefix is None:url_prefix = "/" + self.namefor f, rule, options in self.mound:endpoint = options.pop("endpoint", f.__name__)bp.add_url_rule(url_prefix + rule, endpoint, f, **options)

注:从蓝图的方法中,可以看出,蓝图可以直接调用它自己的对象,然后使用add_url_rule方法,将传入的数据直接保存在了自己的对象中,但是我们的route方法没有传入蓝图对象,也就无法调用add_url_rule来保存相关参数,所以,我们就先将传入的参数保存使用列表保存下来。并且,因为我们不可能只有一个视图函数,所以为了区分,我们将一个视图函数的rule,f,option用元组封装然后再存入列表中,等到其他方法中有对象时,我们再来遍历将视图参数传入对象中进行保存。
恰好,在register方法中,我们传入了一个bp的蓝图对象,现在就可以直接再次将之前存放在列表中的视图参数通过add_url_rule进行保存。

构建红图注册到蓝图中相关推荐

  1. rust房屋建造蓝图_都说蓝图,而不是白图、红图,你知道为什么?

    文学上喜欢把对未来的构想或计划,称为蓝图.蓝图(英文:blueprint)在工业上指"蓝图纸"(晒图纸的俗称),因为图纸是蓝色的,所以被称为"蓝图".也许是因其 ...

  2. 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、编写自定义函数在三线表中添加p值

    三线表是什么?R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义三线表结构(将因子变量细粒度化重新构建三线图).编写自定义函数在三线表中添加p值 目录

  3. ios pusher使用_如何使用JavaScript和Pusher构建实时图

    ios pusher使用 by Rahat Khanna 通过拉哈特·汉娜 如何使用JavaScript和Pusher构建实时图 (How to build a Realtime Graph usin ...

  4. Accurate self-correction of errors inlong reads using de Bruijn graphs LoRMA使用de Bruijn图对长read中的错误

    Accurate self-correction of errors inlong reads using de Bruijn graphs               LoRMA使用de Bruij ...

  5. echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

    echarts下载及使用 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fir ...

  6. MATLAB高光谱图像构建KNN图

    在高光谱图像的特征提取过程中,采用非线性降维的方式对高光谱图像降维的过程中,采用图自编码器来对数据进行降维,需要将利用高光谱图像的结构信息和内容信息,则需要将高光谱图像数据构造为一个图结构,图结构的构 ...

  7. Docker实战 (docker swarm的应用,docker集群的构建,在docker集群中部署服务)

    Docker实战 ----docker swarm的应用,docker集群的构建,在docker集群中部署服务 转载来源:https://blog.csdn.net/No_red/article/de ...

  8. echarts 3d饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

    echarts下载及使用 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fir ...

  9. MySQL Workbench构建ER图(实体关系图)

    MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具,它是著名的数据库设计工具DBDesigne4的继任者,可以通过MySQL Workbench设计和创建新的数据库图示,管理 ...

  10. matlab箱形图_使用javascript可视化世界幸福来构建箱形图

    matlab箱形图 Data visualization is an important and sometimes undervalued tool in a data scientist's to ...

最新文章

  1. MyEclipse +Flex 整合
  2. 初学rpa的十大经典错误及解决办法_Python3之十大经典错误及其解决办法
  3. 裂墙推荐!IntelliJ IDEA 常用插件一览,让效率成为习惯
  4. NYOJ 24 素数距离问题
  5. OpenDDS通讯rtps_discovery对等发现模式的pub和sub匹配的日志
  6. 编写数学公式的好工具
  7. 为什么美团全面推动 K8S 落地,咬紧牙关也要搞云原生?
  8. json Date对象在js中的处理办法
  9. Puppet安装部署篇(一)
  10. 右手螺旋判断磁感应强度方向_弹簧左旋or右旋在功能和应用上有什么区别,如何判断左旋还是右旋...
  11. atitit.科技公司的超级武器--超级框架,到底要不要自己的框架??
  12. 基于Python的校园学生一卡通管理系统
  13. matlab教程课后答案肖汉光,MATLAB大学教程
  14. 手机python30编程教程入门_Python新手入门教程_在手机上就能学习编程的软件
  15. Android——获取实时的手机屏幕四个点经纬度(百度地图)
  16. 基于keras实现双向GRU的中文情感分析
  17. c语言调用tuxedo步骤,c语言入门之BCB客户端tuxedo开发实例
  18. 高性能计算--HPCC--他人评述
  19. 面板显示技术:LCD与OLED
  20. 给nz-select的nz-option设置样式

热门文章

  1. 帝国cms php超时,帝国CMS后台登录超时、登录错误5次限制的解决办法
  2. VS2010 中修改项目名称
  3. LeetCode,无它,唯手熟尔(三)
  4. 10个问题说清楚 什么是元宇宙 - 十问元宇宙:如何将抽象的概念具象化?
  5. sci的figure怎么做_论文攻略丨SCI论文插图怎么做?有这一篇文章就够了
  6. ESL-chapter6 核密度估计和分类
  7. 行波iq调制器_行波型LiNbO3电光调制器的电极优化设计
  8. 如何接触的最新的前端动态、最前沿的前端技术
  9. 移动端web设计尺寸_移动端之Web及app设计尺寸
  10. 一级指针, 二级指针