flask中蓝图的学习

flask_蓝图系列文章目录


前言

1、蓝图

在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的视图、静态文件、模板文件等独立分开?
例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单元,并最终整合到一个项目应用中?

2、蓝图介绍

在Flask中,使用蓝图Blueprint来分模块组织管理。
蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:
一个应用可以具有多个Blueprint
可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和
函数的
在一个应用初始化时,就应该要注册需要使用的Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。


一、创建蓝图包

  • 因为在一个项目中业务较多,可以创建一个蓝图包,里面static目录文件、templates目录文件,初始化的_init_.py

如图:

在这里插入图片描述

二、使用步骤

1、在初始化__init_.py 文件创建蓝图

1、_init.py 创建蓝图
2、其中:static_folder=‘sta’ 是当前蓝图包静态文件访问路径,template_folder=‘tmp’ 是当前蓝图包templates下目录的访问路径。
3、 要引入当前目录的视图函数文件

#这个文件创建蓝图
from flask import *

order_bp=Blueprint('order',__name__,static_folder='sta',template_folder='tmp')

#引入视图函数
from . import order_func

2、创建视图函数文件

1、在新建一个创立视图函数的文件
2、 这个文件要导入建好的蓝图

#这个文件创建视图函数

#导入蓝图
from . import order_bp

@order_bp.route('/co')
def test1():
    return "hello python"

3、调用问题

1、当在应用程序需要用到某个视图函数时,可以通过蓝图进行调用。
2、注意:from order import order_bp 中的order是我自己命名的蓝图包名字,order_bp是蓝图名字
3、 url_prefix=‘/order’ 是设置客户端(浏览器)访问服务器的前缀 后面加上访问视图函数的装饰器。

from flask import Flask
app = Flask(__name__)

#导入蓝图
from order import order_bp
app.register_blueprint(order_bp,url_prefix='/order')

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

客户端(浏览器)访问路径展示

在这里插入图片描述

4、访问静态文件

在这里插入图片描述

总结

  • 在应用开发当中要用到功能非常多,以此对应的视图函数就很多。
  • 因此通过创建不同的蓝图下的不同的视图函数,可以快速精准的定位到某个视图函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值