在上篇文章中,我们学习了Flask框架——模板复用(继承、包含、宏),这篇文章我们来学习Flask框架——蓝图。

随着Flask项目越来越复杂,把所有视图函数放在一个应用文件中会很不方便我们管理,所以需要对程序进行模块化的处理。Flask内置了一个模块化处理的类——Blueprint蓝图。

Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中把蓝图注册到应用。

简单来说就把app应用分为很多个小模块,把这些小模块放在一个包里,这个包叫做蓝图,如下图所示:

项目目录如下图所示:

这里创建了一个名为apps的包,我们这个包称为蓝图,在这个包中,我们又创建了三个包,那么我们如何把蓝图与app.py联系起来呢。这时我们就要通过init.py初始化文件来把蓝图与app.py。

首先我们在user包中创建一个视图函数文件名为view,代码如下所示:

from flask import Blueprint
user_bp= Blueprint('user',__name__)

首先导入Blueprint包,再通过Blueprint()方法来定义变量user_bp为蓝图对象。

init.py初始化文件代码如下所示:

from flask import Flask
from apps.user.view import user_bp
​
def create_app(): app=Flask(__name__,template_folder='../templates',static_folder='../static')
​#蓝图app.register_blueprint(user_bp) return app

首先我们导入user中的view对象user_bp,自定义函数create_app()并创建一个app对象,然后通过app.register_blueprint()方法将蓝图对象绑定在app对象上。

注意:由于init.py初始化文件与static静态文件、templates模板文件不在同一级,所以需要重新指定静态文件与模板文件的位置。

接下来编写app.py启动文件,代码如下所示:

from apps import create_app
app=create_app()
if __name__ == '__main__':app.run(port=8080,debug=True)

代码很简单,直接导入view文件中的create_app并调用create_app()。

这样app.py文件就和蓝图包联系起来了。

注意:上面的文件名、蓝图名、视图函数名都可以是任意的。

那么我们蓝图的视图函数有什么变化呢?

以上面的view视图函数文件为例,其代码内容如下所示:

from flask import Blueprint, request, render_template, redirect
from apps.user.model import Useruser_bp= Blueprint('user',__name__)        #蓝图对象@user_bp.route('/')
def hello():return '你好'

与之前的在app.py中写视图函数将比,将之前的@app.route()改为蓝图对象名.route(),其他的就几乎一样。

好了,Flask框架——蓝图就将到这里了,下篇我们学习Flask框架——flask-script,感谢观看!!!

Flask框架——蓝图相关推荐

  1. Flask框架-蓝图系统

    Flask之蓝图系统 一.创建蓝图 (1)在主项目下创建目录 (2)在目录下创建蓝图模块文件 (3)在文件中导入蓝图模块,创建实例对象,如何创建视图,创建路由 (4)在主项目文件,通过falsk实例对 ...

  2. flask框架----蓝图

    蓝图(flask中多py文件拆分都要用到蓝图) 如果代码非常多,要进行归类.不同的功能放在不同的文件,吧相关的视图函数也放进去.蓝图也就是对flask的目录结构进行分配(应用于小,中型的程序), 小中 ...

  3. python flask框架 蓝图的使用

    蓝图的目的是实现 各个模块的视图函数写在不同的py文件当中. 主视图 中 导入 分路由视图的模块,并且注册蓝图对象 分路由视图中 利用 蓝图对象 的route 进行装饰视图函数 主路由视图函数: 1 ...

  4. Flask框架(flask中的蓝图Blueprint)

    1. 我们学习Flask框架,开始的时候是把所有的视图函数等都写在一个文件中 我们在这单个文件中可以定义路由.视图函数.定义模型等等. 但这显然存在一个问题:随着业务代码的增加,将所有代码都放在单个程 ...

  5. Python Flask框架-开发简单博客-认证蓝图

    作者:Eason_LYC 悲观者预言失败,十言九中. 乐观者创造奇迹,一次即可. 一个人的价值,在于他所拥有的.可以不学无术,但不能一无所有! 技术领域:WEB安全.网络攻防 关注WEB安全.网络攻防 ...

  6. 前端—基于Flask框架调用百度接口实现语音识别功能(使用蓝图blueprint)

    配合"基于Flask框架调用百度接口实现语音识别功能"使用的前端参考代码 后端代码链接 Python-基于Flask框架调用百度接口实现语音识别功能:基于Flask框架调用百度接口 ...

  7. python之flask框架详解

    目录 前言 1.新建文件helloworld.py 2.相关配置参数 3.加载配置文件 3.1配置对象加载 3.2配置文件加载 3.3读取配置 4 路由定义 4.1指定路由地址 4.2 给路由传参 4 ...

  8. python前端学习-------Flask框架基础(建议收藏)

    Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...

  9. flask框架视图和路由_角度视图,路由和NgModule的解释

    flask框架视图和路由 Angular vs AngularJS (Angular vs AngularJS) AngularJS (versions 1.x) is a JavaScript-ba ...

最新文章

  1. java 构造函数内部的多态方法 完全剖析
  2. MySQL的4大版本
  3. php柱状图html代码,html5生成柱状图(条形图)效果的实例代码
  4. xshell vim 不能粘贴_linux基础知识:vim(vi)的知识
  5. 控件事件的发生与页面加载的关系
  6. CV Code | 本周新出计算机视觉开源代码汇总(语义分割、目标检测、超分辨率、网络结构设计、训练策略等)...
  7. 库克终于承认:苹果滞销因iPhone价高,连累财报即将降价促销
  8. React中那些纠结你的地方(一)
  9. C语言学习资料汇集 助你成为更好的程序员
  10. 【读书笔记】致加西亚的信(二)
  11. 计算机上自带的打字游戏,Steam这款打字游戏,让多少人想起自己曾经学校上电脑课的日子?...
  12. Chrome 中的自动播放策略如何设置自动播放
  13. 最强大脑记忆曲线(10)—— 信息统计
  14. 达梦数据库磁盘空间满之多种解决办法
  15. DI高速计数器编码器脉冲计数器PNPNPN输入模块高低电平
  16. Debussy5.4免费分享
  17. 作家天地杂志作家天地杂志社作家天地编辑部2022年第23期目录
  18. 计算机专业法语怎么读,法语实用资料计算机专业相关词汇(17页)-原创力文档...
  19. 论文阅读《Visual Measurement Integrity Monitoring for UAV Localization》
  20. 鸿蒙轻内核源码分析:文件系统LittleFS

热门文章

  1. 【Leetcode】1507. Reformat Date
  2. 机会网络仿真工具ONE.1.4.1使用说明
  3. [IT幽默]IT业售后服务笑话大全(2)
  4. 沙拉比巨无霸更容易让人发胖
  5. 放松心情,准备新的挑战
  6. python设置代理
  7. 机器人专用符文_一Q一个嘤嘤怪!启封符文机器人黑科技
  8. 暗黑4公布,这才是Diablo!!!!
  9. Mybatis与springboot项目启动时出现Field XXX in com.xxx that could not be found
  10. 用js写卡牌游戏(六)