Flask10——蓝图

什么是 Flask 的蓝图(Blueprint) Flask 的蓝图(Blueprint)是一种模块化工具,允许开发者将应用程序的路由、视图和其他逻辑分成独立的模块。这对于组织大型 Flask 项目非常有用,使代码更清晰、可维护,并促进团队协作。蓝图在大型项目中几乎是不可或缺的工具,有助于让代码更加整洁高效!两个模块可以独立开发,并在主应用中轻松注册和管理。 阅读详情

截止目前为止,我们所写的所有视图函数都放在一个文件当中,对于我们开发一个非常小的应用的话,还勉强可以接受,但是在我们真正的开发中,我们可能会需要开发前台应用,后台应用,我们也可能需要操作不同的表,那么,为了便于日后的维护,一般我们会根据不同的功能模块,将文件按功能模块,或者按操作的表的不同来拆分我们的文件到不同的文件当中。下面就仿照真实的开发需求,来模拟一下我们需要解决的问题,已经需要怎么解决。
比如我们要开发一个博客系统,那么一般会分为前台和后台,前台包括:首页、列表页面,详情页面。后台则包括所有文章列表页面,添加文章页面,修改文章页面。那么我们就需要创建以下视图函数:

# app.py文件 

from flask import Flask

app = Flask(__name__)

# 前台首页
@app.route('/')
def index():
    return 'index'

# 前台列表页面
@app.route('/list')
def list():
    return 'list'

# 前台详情页面
@app.route('/detail')
def detail():
    return 'detail'


# 后台所有文章页面
@app.route('/all')
def all():
    return 'add'

# 后台添加文章页面
@app.route('/add')
def add():
    return 'add'


# 后台编辑文章页面
@app.route('/edit')
def edit():
    return 'edit'


if __name__ == '__main__':
    app.run()

这就是我们按照之前的思路的一般写法,我们现在看到的只是这几个视图函数,数量还很有限,但是真正开发的时候可不只有这几个视图函数,如果有较多视图函数的话,我们就需要考虑将此文件进行拆分了。比如我们可以将后台的相关试图函数给移到新文件admin.py当中。

# app.py文件 

from flask import Flask

app = Flask(__name__)

# 前台首页
@app.route('/')
def index():
    return 'index'

# 前台列表页面
@app.route('/list')
def list():
    return 'list'

# 前台详情页面
@app.route('/detail')
def detail():
    return 'detail'

if __name__ == '__main__':
    app.run()
# admin.py文件 

# 后台所有文章页面
@app.route('/all')
def all():
    return 'add'

# 后台添加文章页面
@app.route('/add')
def add():
    return 'add'


# 后台编辑文章页面
@app.route('/edit')
def edit():
    return 'edit'

但是这样拆分之后,我们发现又有新的问题了。在admin.py文件当中并没有app,从而导致代码报错。就算我们将app从app.py文件中引入到admin.py中,我们发现启动后,还是依然找不到我们后台的视图函数。
那么要解决这个问题,就需要我们今天要讲的蓝图了,为了大家的理解,我姑且把蓝图比作插座,我们接下来需要把admin.py当中的三个视图函数插到一个负责后台模块的插座上。具体的代码实现,需要我们引入一下蓝图,然后进行实例化,实例化蓝图后的对象为:admin_blue,然后,这个时候就需要将admin.py当中的三个视图函数挂到这个实例化后的蓝图对象admin_blue上了。

from flask import Blueprint

admin_blue = Blueprint('admin', __name__)


@admin_blue.route('/add')
def add():
    return 'add'


@admin_blue.route('/delete')
def delete():
    return 'delete'


@admin_blue.route('/edit')
def edit():
    return 'edit'

我们刚才说了,我们把蓝图比作成插座,那么到此为止,我们已经算是把后台的视图函数挂载到了后台的这个插座上,我们接着还需要将这个后台的插座链接到我们的总开关app上,所以,在app.py文件中,我们就需要首先引入一下后台的蓝图,然后再注册到主app上,这样才算将我们的视图函数通过插座联到了我们的主开关上,我们的后台的视图函数才能正常的访问了。代码如下:

from admin import admin_blue  # 引入蓝图


app = Flask(__name__)

app.register_blueprint(admin_blue)  # 注册蓝图

这样,当服务启动之后,我们就可以通过 http://127.0.0.1:5000/add 来访问后台的视图函数了。
这就是我们最简单的通过蓝图来按功能模块拆分文件的方法。也就是蓝图的使用方法。

【Flask】Flask 嵌套蓝图 flask的原生蓝图很多时候不满足更小模块化,比如API接口层可使用父级蓝图,但我还想为user api和post api 各自使用子级蓝图,而我们可以自定义蓝图来实现蓝图的嵌套。 阅读详情

相关推荐

Flask—蓝图

一、Flask蓝图介绍 1. 蓝图定义 随着业务代码的增加,将所有代码都放在单个程序文件中,是非常不合适的。这不仅会让代码阅读变得困难,而且会给后期维护带来麻烦。django中的app的主要作用就是将django的项目分成一个个单独的app,然后将所有的app分配不同的处理功能,通过路由分配将它们连接成一个大的django项目,其实Flask中的蓝图和django中的app功能...

HuQi 782

Flask框架学习:蓝图的使用

flask 蓝图的使用

weixin_42576837的博客 1044

【flask入门系列】路由和蓝图

这节我会介绍一下flask中的路由与蓝图,刚开始学其实大家不必着急,打好基础就行,python这门语言本身就比较简单,尤其对于学过django的同学来说,学习flask简直小菜一碟,完全可以用flask自己搭建一个像django那样的目录,使项目结构比较清晰。后期我也会专门出一个关于flask的小项目,帮助大家快速熟悉flask的项目结构以及使用,总之就一句话,使劲卷就完事了!!!

阿牛的博客 1167

Flask 之蓝图:模块化应用的利器

Flask蓝图(Blueprint)是构建模块化中大型应用的核心工具,可将应用拆分为高内聚低耦合的组件。它解决了代码臃肿、URL冲突等问题,支持路由、视图、错误处理等模块化定义。通过url_prefix实现URL隔离,template_folder/static_folder管理专属资源。最佳实践包括:采用应用工厂模式、按功能组织蓝图目录、统一命名规范、条件注册蓝图等。高级特性涵盖蓝图层级的错误处理、过滤器、上下文处理器,以及动态蓝图注册功能。合理使用蓝图能显著提升代码可维护性、可扩展性和团队协作效率。

这里是 「Py玩家的栈与星辰」,专注分享Python开发、DevOps实践、云原生技术与系统安全领域的深度干货。 2128

UE5.6使用ndisplay,单窗口多画面(单机部署),配置、打包流程,无需switchboard

摘要:本文介绍了在UE5.6中使用ndisplay插件的完整流程。首先需要开启ndisplay和launch插件,创建ndisplay配置文件并设置本地单窗口多画面模式。随后通过Process Explorer获取启动命令用于制作bat文件。打包项目时需删除场景中的ndisplay文件,但保留内容浏览器中的配置,并设置为开发版打包。最后将ndisplay文件导出为.ndisplay格式,与bat文件一起放置在打包目录下,通过bat启动程序。注意修改路径和窗口大小时需保持纯英文路径,且bat代码需保持单行格式

weixin_43912248的博客 977

模型优化系列——模型剪枝/量化概述

模型优化目的:通过减少模型大小,提高推理速度等使模型成功部署在各个硬件中并实时有效运作。

qq_61210574的博客 1294

Flask10:蓝图

三个页面,这样可以把相关内容写在一个页面中 app.py页面,注册所有的蓝图

SergioSilva的博客 182

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

详细介绍下flask中的蓝图10

详细介绍下flask中的蓝图1。

仰望星空的小随 154

基于人脸识别的驾驶员疲劳检测方法研究

摘 要交通安全问题愈发严重,疲劳驾驶已是造成交通事故的主要因素之一。为减少因疲劳驾驶造成的交通事故,本文设计了一种基于图像处理技术的疲劳驾驶监测系统,该系统结合了肤色模型、灰度积分投影技术以及PERCLOS方法,旨在通过实时视频图像分析准确检测驾驶员的疲劳状态。首先,系统通过肤色模型从图像中有效提取人脸区域,并在此基础上利用Haar级联分类器进行人脸检测,确保在人脸角度变化或部分遮挡的情况下依然能够实现高效识别。接着,灰度积分投影技术被应用于眼部定位,通过分析眼睛区域的灰度变化,精确确定眼睛的上下边界,从

carrott0617的博客 1005

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

flask的蓝图是什么?怎么搭建?

Flask blueprint 是flask自带的一种框架结构,方便搭建更大的项目结构 Flask blueprint 的官方案例 单蓝图模式 多蓝图模式 与bluePrint结合紧密的有两个插件,我们采用blueprint之后,通常会用一种叫做惰性加载的方式,加载app Flask_scrtip 结合蓝图或者自己可以定义flask项目的命令模式。类似django的 Python manage...

9527 909

【WRF-Chem工具】anthro_emiss 详解:生成人为排放数据

anthro_emiss 详解:生成人为排放数据

WW、forever的博客 2056

flask_sqlalchemy的使用问题

由于毕业论文需要使用到yolov10做目标检测,于是乎我想着使用flask框架做接口,方便开发前后端分离项目。由于接口可能比较多,不可能都写在app文件里,所以使用了flask蓝图,并使用flask_sqlalchemy操作数据库。但是诡异的是,当操作数据库的业务放在app中时又可以完美运行,在蓝图中却无法运行。因为此flask项目是要依赖于yolov10这个项目运行的,所以我直接将其放在了yolov10-main目录下。,使用的是直接用pychram操作,其余的都不管用。出现的依赖问题,可以参考。

weixin_70803774的博客 544

纳米尺度仿真软件:GROMACS_(3).分子动力学模拟原理

分子动力学(MD)模拟是一种强大的计算方法,通过数值积分牛顿运动方程,追踪粒子在时间上的位置和速度变化,提供关于体系动力学行为的详细信息。选择合适的力场、设置初始条件、应用边界条件、控制温度和压力、选择合适的时间步长、计算能量和力,是 MD 模拟的关键步骤。通过这些步骤,可以对各种化学、生物和材料体系进行模拟和分析,揭示其结构、动力学和热力学性质。高级应用如反应路径模拟和蛋白质折叠研究,进一步扩展了 MD 模拟的应用范围。

kkchenjj的博客 1101

把 ST03 的历史数据留得更久:ABAP Workload 统计保留期设置、原理与落地避坑指南

SAP ST03性能数据保留期配置指南 ST03/ST03N是SAP系统性能分析的核心工具,但默认数据保留期通常较短(3个月左右),难以满足跨季度对比、年度规划等需求。本文详细解析了ST03数据保留期的配置方法及注意事项: 数据存储机制:性能数据存储在监控库中,通过定期重组作业清理过期数据 配置路径:7.0+系统在"Workload Collector Database→Reorganization→Control"中按Profile分别设置 关键限制:保留期最大值建议不超过99,否则可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 219

flask蓝图介绍及创建蓝图

文章目录一、蓝图1. 什么是蓝图2. 蓝图的运行机制3. 运行创建的蓝图及加上路由前缀4. 一个项目中多个蓝图5. 使用蓝图构建项目 一、蓝图 1. 什么是蓝图 蓝图(blueprint):用于实现单个应用的视图、模板、静态文件的集合。 蓝图就是模块化处理的类。类似于django中app,子应用。 简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能。...

langdei的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Flask python 开发篇:蓝图的使用

# 注册扩展# 注册蓝图return app# 注册flask拓展# 注册蓝图。蓝图的概念

snow_love_xia的博客 2233

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Flask蓝图的作用

Flask蓝图(Blueprint)在Flask框架中扮演着至关重要的角色,它主要用于组织和管理路由、视图函数以及静态文件等,为开发者提供了一种将应用程序拆分为更小、可重用组件的方式。

sheji888的专栏 3029

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Flask 蓝图

由于我们现在的项目开发是一个相对于来说非常耗时间和精力的一个工程,如果我们将所有的Flask的请求方法都写在同一个文件下的话,非常的不便于我们的代码的管理和后期的功能代码的添加 如下示例:我们在一个文件中写入多个路由,这会使代码维护变得困难。 如图所示,如果我们将所有的请求方法写在同一个处理文件下面的话,会导致我们的代码显得很没有逻辑性,如果我们后期...

Hello_Bytes 2万+

flask之使用蓝图

保姆级教程,实操有效

qq_66129888的博客 1054

flask蓝图的使用

1.flask蓝图的含义      如果我们将所有的Flask的请求方法都写在同一个文件下的话,非常的不便于我们的代码的管理和后期的功能代码的添加,简单来说蓝图就是实现一个模块化。 2.使用蓝图步骤     第一步:创建蓝图     使用如图所示,找到自己需要几个模块,

weixin_44141899的博客 6115

Flask 蓝图 (Blueprints)

蓝图也可以定义自己的错误处理函数。

zhao1iyong的博客 1402

【Flask】蓝图

34

欢迎关注【微信公众号】测试开发Guide,从功能测试进阶测试开发 438

flask中蓝图使用以及多蓝图使用

模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理 简单来说,Blueprint 是一个存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。 Flask使用Blueprint让应用实现模块化,...

sophie1314179的博客 2938

【Flask】创建一个蓝图

蓝图 在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的视图、静态文件、模板文件等独立分开? 例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单元,并最终整合到一个项目应用中? 一、蓝图介绍 在Flask中,使用蓝图Blueprint来分模块组织管理。 蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点: 一个应用可以具有多个Blueprint 可以将一个Blueprint注册到任何一

python全栈 2846
上一篇: Flask07——数据库操作-增删改查作者
下一篇: Flask01——最小实例及路由传参
零寂前端
博客等级 码龄11年 59粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值