一、蓝图的定义
flask蓝图 (blueprint):用于把app应用模块化,就是把各个模块的路由绑定到该模块蓝图上,然后再把蓝图加载到app应用中
二、蓝图创建
1.创建flask的文件(全展开,文件已提前设置好)
注意:pycharm专业版自动创建flask文件,社区版需要手动添加文件夹(app、static、templates、app.py)其中app.py文件与其他文件夹同级。
2.在apps文件夹内添加book.py、course.py、user.py文件用于调用
下面用course举例:
1>导入模块
from flask import Flask,Blueprint
2>创建蓝图
注意:蓝图内参数Blueprint("course",__name__,url_prefix="/course")(标红处)因文件不同而区分开。
# url_prefix:127.0.0.1:5000/course/list
bp = Blueprint("course",__name__,url_prefix="/course")
其他两个py文件创建同上,只是标红处不同。
3>设置路由
@bp.route("/list")
def courselist ():
return "课程列表"
3.打开app.py文件
1>导入之前创建好的蓝图
from flask import Flask
from apps.book import bp as bookbp
from apps.course import bp as coursebp
from apps.user import bp as userbp
2>设置连接
app = Flask(__name__)
app.register_blueprint(bookbp)
app.register_blueprint(coursebp)
app.register_blueprint(userbp)
3>设置主页路由和启动
@app.route('/')
def index():
return "hello"
if __name__ == '__main__':
app.run(debug=True)
4.蓝图也可导入模板文件(.html),默认从templates文件夹中调用(可更改路径)下面用book.py进行举例
1>在templates文件夹下创建模板文件booklist.html并打开编辑
简单设置页面
!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图书类别</title>
</head>
<body>
<h1>图书列表</h1>
</body>
</html>
2>打开book.py文件进行路由设置
@bp.route('/list')
def booklist():
return render_template("booklist.html")
5.运行结果
主页:
course页面:
book/list页面:
有问题的同学欢迎私信 ε=(´ο`*))) 如果你明白了记得给我点了个赞哦~O(∩_∩)O