Flask-3、注册蓝图内容

一、蓝图说明:

什么是蓝图?
  蓝图可以理解为,是一种对项目中的代码进行模块化管理的工具,相当于python中的包

为什么要使用蓝图?
  如果我们将所有的Flask的请求方法都写在同一个文件下的话,非常的不便于我们的代码的管理和后期的功能代码的添加 (就是在一个py文件中具有多个功能代码,不利于维护和管理。)

  如果在其他的模块中去调用视图函数,就会产生循环导入的问题。

蓝图的作用是什么?
  1.对我们的flask应用程序进行模式化管理
  2.提升开发效率,降低开发难度,协同开发

蓝图的运行机制是什么?
目的:修改app应用对象url_map路由表
      蓝图可以在应用对象app上执行注册路由的操作,但是这个操作会修改应用对象app的url_map路由表。
过程:
      因为蓝图对象没有路由表,当通过route装饰器去注册路由时,只是在它内部的延时列表中添加了一个项。我们可以通过将蓝图对象注册到应用对象app上的方法,从蓝图对象的延时列表中循环取出每一项,并调用应用对象app的add_url_rule的方法,修改应用对象app的路由表。

蓝图的基本操作流程是什么?
  1.导入蓝图模块

from flask import Blueprint

  2.初始化蓝图对象

user_bp = Blueprint('user', __name__)

  3.使用蓝图对象去注册路由

@user_bp.route('/xx/xx')

  4.把蓝图对象注册到app应用对象上

app.register_blueprint(user_bp)
二、代码示例:
文件目录结构:
	|-- apps.py
		|-user
			|--view.py
	|-- __init__.py
view.py
# 文件名称:view.py

 # 步骤1.引入蓝图
from flask import Blueprint

# 步骤2.初始化蓝图对象	
user_bp = Blueprint('user', __name__)
# 'user':蓝图名字,需要唯一,'__name__'蓝图所在的模块或者包
#  在url_for()使用解析时,需要先挂蓝图名.函数名(或者 endpoint的值),'user.xx'

# 步骤3.把视图函数注册到蓝图对象上
@user_bp.route('/xx/xx') # 在这个蓝图对象上进行操作,注册路由,指定静态文件夹,注册模板过滤器
def func():
	pass
__init__.py
# 文件名称:__init__.py

from apps.user.view import user_bp
from flask import Flask

def create_app():

	# template_folder、static_folder:引用的路径
	app = Flask(__name__, template_folder='../templates',static_folder='../static')
	
	# 步骤4. 将蓝图对象绑定在app上(也叫应用对象)
	app.register_blueprint(user_bp) # 注册蓝图
	
	app.config.from_object(配置文件)
	
	return app
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值