上一篇是怎么通过单独的模块实现Blueprint,来将单独的功能视图函数放在里面。
但这样的在实际并不实用,这节讲述如何将模块的抽取到一个包里面,即文件夹。
""" 1. 导入蓝图, 创建蓝图对象,导入子模块 2. 使用蓝图对象实现路由 3. 在app创建的地方注册路由 """
文件夹user里面有模块 __init__.py , views.py :
__init__.py
# 1. 导入蓝图, 创建蓝图对象, 导入子模块
from flask import Blueprint
user_blue = Blueprint('user', __name__)
# 必须导入子模块, 否则无法识别到子模块的路由
from . import views
views.py
from . import user_blue
@user_blue.route('/user_name')
def user_name():
return 'user_name'
@user_blue.route('/user_address')
def user_address():
return 'user_address'
manager.py(主模块,文件夹user外面的模块)
from flask import Flask
from cart import cart_blue
from user import user_blue
# 3. 在app创建的地方注册蓝图
app = Flask(__name__)
app.register_blueprint(cart_blue)
app.register_blueprint(user_blue)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
print(app.url_map)
app.run(debug=True)