参考文档:https://blog.csdn.net/qq_38648652/article/details/103833707
1、蓝图的基本使用
- main.py代码
from flask import Flask
from goods import app_goods
#循环引用,解决方法,推迟一方的导入,让例外一方完成
app = Flask(__name__)
#注册蓝图(注册goods模块下的蓝图对象,就可以访问相应的路径)
app.register_blueprint(app_goods)
@app.route('/')
def index():
return "index page"
if __name__ == '__main__':
print(app.url_map)
app.run(host='0.0.0.0', debug=True)
- goods.py代码
# from main import app
from flask import Blueprint
#创建一个蓝图的对象,蓝图是一个小模块抽象的概念
app_goods = Blueprint("app_goods", __name__)
@app_goods.route('/goods', methods=['GET', 'POST'])
def goods():
return 'goods page'
@app_goods.route('/hu')
def hu():
return 'hu page'
2、以目录的的形式定义蓝图
- 在括号里面添加url_prefix来进行添加一个请求路径,请求的时候必须拼接它才可以访问其他的。
app.register_blueprint(app_goods, url_prefix="/goods_route")
- 截图目录如下和各个文件的代码
- main.py代码
from flask import Flask
from goods import app_goods
from cart import app_cart
#循环引用,解决方法,推迟一方的导入,让例外一方完成
app = Flask(__name__)
#注册蓝图(注册goods模块下的蓝图对象,就可以访问相应的路径)
app.register_blueprint(app_goods, url_prefix="/goods_route")
app.register_blueprint(app_cart, url_prefix="/cart")
@app.route('/')
def index():
return "index page"
if __name__ == '__main__':
print(app.url_map)
app.run(host='0.0.0.0', debug=True)
- __init__.py代码(当templates下有html文件的时候,就要加template_folder=“templates”)
from flask import Blueprint
app_cart = Blueprint("app_cart", __name__, template_folder="templates")
#在__init__.py文件被执行的时候,把视图加载进来,让蓝图与应用程序知道有视图的存在
from .views import hu
- views.py代码
from . import app_cart
@app_cart.route('/hu1')
def hu():
return render_template("cart.html")
- 启动后的路径映射截图