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
猜你喜欢
- 外面很多所谓sitemap生成代码都只生成目录文件地址,没生成动态的,我后来自己写了这个,是支持动态的,例子: 如你是文章网站,文章有200
- 在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊
- 先来看个例子:需求为生成4位数,不足前面补0<?php //生成4位数,不足前面补0 $var=sprintf
- 本文实例讲述了Python实现的维尼吉亚密码算法。分享给大家供大家参考,具体如下:一 代码# -*- coding:utf-8 -*-#ke
- 本篇文章主要通过一个简单的例子来实现神经网络。训练数据是随机产生的模拟数据集,解决二分类问题。下面我们首先说一下,训练神经网络的一般过程:1
- 这个程序的功能非常的简单,就是每天在系统中新建一个文件夹。文件夹即当前的时间。此代码是在同事那边看到的,为了锻炼下自己薄弱的Python能力
- 第一种方法import sysimport unicodedatas = "Lǐ Zhōu Wú"remap = { #
- 本文实例讲述了Python实现批量读取图片并存入mongodb数据库的方法。分享给大家供大家参考,具体如下:我的图片放在E:\image\中
- 什么是 YARPYARP (另一个反向代理) 设计为一个库,提供核心代理功能,你可以根据应用程序的特定需求进行自定义。YARP 是使用 .N
- 我就废话不多说了,大家还是直接看代码吧!import socketimport sysimport timeimport structHOS
- 集合的特性无序、不重复、可迭代常用api创建一个集合需要显式地使用set()方法来声明,如果使用字面量{}来声明解析器会认为这是一个字典。a
- 本文实例讲述了Python使用cx_Freeze库生成msi格式安装文件的方法。分享给大家供大家参考,具体如下:①.需要在目录下面创建一个文
- Mac 下 Flask 框架 workon命令找不到 ---- 最终解决方案(详解具体实现操作过程中遇到的坑)2018年08月17日 00:
- function MakeUrl($arr){  
- 就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了。之前对获取天气都是数据上的搜集,做成了一个数据表
- 在OOCSS中怎么定义“对象”?对象类似JAVA中的类,保持着OO的特征。一个CSS对象由4部分组成:可能是一个或多个DOM节点的HTML由
- 1.能调用方法的一定是对象,比如数值、字符串、列表、元组、字典,甚至文件也是对象,Python中一切皆为对象。 str1 = 'he
- 短几年,Google 的 Logo 已经象 Nike 的挑勾和 NBC 的孔雀图案一样著名了。Ruth Kedar,Google
- Linux Journal 发表了一篇优化 Oracle 数据库的文章,感觉十分的有用。简要介绍其摘要和大家共同分享 Linux 在企业级数
- 这篇文章主要介绍了python基于event实现线程间通信控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,