一. 蓝图
- flask的应用对象不能在其他文件中注册路由, 想要在项目的其他文件中注册路由, 需要使用 蓝图
- 蓝图: flask项目实现 模块化 的一种机制
1. 蓝图的基本使用 (重点)
- 创建蓝图对象
- 使用蓝图来装饰路由
- 应用注册蓝图
- 在包的init.py中关联视图文件
- home子应用下/init.py
from flask import Blueprint
# 1.创建蓝图对象
home_blu = Blueprint("home_blu", __name__)
# 为了避免循环导入问题, 将蓝图先创建,再关联视图函数
# 4. 关联视图函数
from .views import * # 从当前init.py所在的包中查询名为views的模块, 并从中导入所有的内容
- home/views.py:
from . import home_blu # .表示从当前文件所在的包中的init.py文件中导入home_blu
# 2. 使用蓝图来装饰路由
@home_blu.route('/')
def index():
return 'index'
- 主文件
from flask import Flask
from home import home_blu # 从home包的init.py中导入home_blu (如果没有找到该内容, 就会从home包中查询并导入名为home_blu的模块)
app = Flask(__name__)
# 3. 注册蓝图
app.register_blueprint(home_blu)
if __name__ == '__main__':
print(app.url_map)
app.run(debug=True)