Flask蓝图学习教程
作者:Ywx_csdn 发布时间:2023-03-02 04:19:15
前序
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、访问静态文件
总结
在应用开发当中要用到功能非常多,以此对应的视图函数就很多。
因此通过创建不同的蓝图下的不同的视图函数,可以快速精准的定位到某个视图函数。
来源:https://blog.csdn.net/Ywx_csdn/article/details/127194278


猜你喜欢
- 一、什么是上下文管理器我们在处理文件的时候经常看到下面这样的代码,它即是上下文管理器:with open('test.txt'
- 前言最近发现一个问题,在一次爬虫实战中,需要将字典加入列表中,意外的情况出现了!!!下面简单分析一下出现的状况:list = []dic =
- 1、pyecharts绘制时间轮播柱形图from random import randintfrom pyecharts import op
- 看到一段代码,如下self.batch_size = batch_size = 128初一看很诧异,仔细想想其实很合理的。在python可能
- append()函数描述:在列表ls最后(末尾)添加一个元素object语法:ls.append(object) -> None 无返
- 一 前言 问题的存在 从代码级别上,也就是应用层次上考虑代码安全的话(也就是不考虑底层的语言本身等问题的漏洞),脚本安全问题就是函数和变量的
- 一、问题描述通过调用MyQR模块来实现生成个人所需二维码。安装:pip install myqr二、代码实现1.普通二维码from MyQR
- 1.安装 Selenium 模块Selenium支持很多浏览器,我选择的是Firefox浏览器。安装方法:①打开cmd;②输入命令 pip
- a {}{ background:url(images/normal.gif); } a:ho
- 作用:pygame一般用来做游戏注意:1.在使用pygame提供的功能之前,需要调用init方法2.在游戏结束前需要调用 quit 方法py
- LDAP(Light Directory Access Portocol)是轻量目录访问协议,基于X.500标准,支持TCP/IP。LDAP
- 您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 g
- 图像轮廓概念轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连
- 1. pyecharts 模块介绍Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
- 在Python中,split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法
- #当前文件的路径pwd = os.getcwd()#当前文件的父路径father_path=os.path.abspath(os.path.
- 一. 认证系统概要create_user 创建用户authenticate 验证登录login 记住用户的登录状态logout 退出登录is
- 背景:做任务领金币的过程很无聊,而且每天都是重复同样的工作,非常符合自动化的定义;工具:python,appium,Android 手机(我
- 进程概述? 进程(Process)是计算机中已运行程序的实体。进程与程序不同,程序本身只是指令、数据及器组织形式的描述,进程才是程序(那些指
- 一、config.ini 配置文件[DATABASE]host = 192.1.1.1username = rootpassword = r