它的作用就是将 功能 与 主服务 分开怎么理解呢?
比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,可以把蓝图理解为一个不能被run的Flask实例
创建一个用户文件:users.py
from flask import Blueprint, render_template user = Blueprint("user", __name__, template_folder="username", url_prefix="/user") # user:蓝图的标识,用于整个应用程序当中,名字不要重复
# template_folder :指定模板文件
# url_prefix :为url添加前缀,在多个蓝图中出现相同的url是使用,访问格式/user/user @user.route("/user", methods=["GET", "POST"])
def user_func(): # 名字不要和Blueprint重复
return render_template("name.html")
在app文件中导入并注册
from flask import Flask
from users import user #导入 app = Flask(__name__) app.register_blueprint(users.user) #注册 @app.route("/index")
def index():
return "光临" if __name__ == '__main__':
app.run()
蓝图目录结构
创建app01的python包(名字随意)
在__init__py中创建APP
from flask import Flask
from .views import users def create_app():
app = Flask(__name__)
app.debug = True app.register_blueprint(users.user) return app
在users中写路由函数
from flask import Blueprint user = Blueprint("user",__name__) @user.route("/user")
def user_func():
return "usersl"
在manager中启动
from app01 import create_app
app = create_app() if __name__ == '__main__':
app.run()