Flask-Blueprint
demo01_blueprint.py
"""
蓝图的基本使用【掌握】
- 作用:为了进行模块化开发
- 特点:属于flask中自带的,不需要安装扩展就能使用
- 蓝图的使用流程:
- 1. 创建蓝图对象
- 2. 使用蓝图装饰视图函数
- 3. 将蓝图注册到app中
"""
from flask import Blueprint, Flask
from demo02_product import bp
from dmeo03_user import user_bp
app = Flask(__name__)
# 将蓝图注册到app中
app.register_blueprint(bp)
app.register_blueprint(user_bp)
if __name__ == "__main__":
app.run(debug=True)
demo02_product.py
from flask import Blueprint
# 创建蓝图对象
bp = Blueprint("myBp", __name__)
# 使用蓝图装饰视图函数
# 首页
@bp.route("/")
def index():
return "index"
# 列表页
@bp.route("/list")
def list():
return "list"
# 详情页
@bp.route("/detail")
def detail():
return "detail"
dmeo03_user.py
from flask import Blueprint
# 创建蓝图对象
user_bp = Blueprint("user", __name__)
# 使用蓝图装饰视图函数
@user_bp.route("/user_info")
def user_info():
return "user_info"
dmeo04_user_blue.py
from flask import Blueprint
# 1. 创建蓝图对象
# 参数1:user_blue,表示蓝图的名字,用来表示蓝图装饰的视图函数所属的蓝图
# 参数2:__name__,固定写法,表示的是蓝图所在的包的名字
# 参数3:static_folder,资源文件夹名字,
# 参数4:user_prefix,访问路径的前缀,为了防止资源混乱
# 参数5:template_folder,表示蓝图的模板文件。
# 如果app中也设置了自己的模板,且文件名相同,则优先访问app的
user_blue = Blueprint(
"user_blue",
__name__,
static_folder="static",
url_prefix="/user",
template_folder="templates",
)
# 导入 view.py
from user import views
# view.py
from user import user_blue
from flask import render_template
# 2. 装饰视图函数
@user_blue.route("/user_login")
def user_login():
return "user_login"
@user_blue.route("/register")
def register():
return render_template("A01_blueprint.html")
A01_blueprint.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户注册</title>
</head>
<body>
<h1>用户注册</h1>
<h2>1、用户注册</h2>
<div>哈哈哈哈哈哈哈哈哈哈哈哈</div>
</body>
</html>