蓝图的使用

蓝图就是将flask程序进行模块化处理。

蓝图分为3个步骤:

(1)初始化蓝图

(2)使用蓝图去注册路由url

(3)把蓝图注册到app上

1.对单个文件进行蓝图划分

共有启动文件manage.py:

代码如下:

from flask import Flask
from order import order_blu

app=Flask(__name__)

# 3.把蓝图注册到app上
app.register_blueprint(order_blu)

@app.route("/")
def index():
    return "index"


if __name__ == '__main__':
    # 存储当前Flask下面都有哪些路由和视图函数
    print(app.url_map)
    app.run(debug=True)

order.py文件代码如下:

from flask import Blueprint

# 1.初始化蓝图
order_blu=Blueprint('order',__name__)

# 使用蓝图去注册路由url
@order_blu.route("/order/list")
def user_order():
    return "订单列表"

manage.py是一个程序入口,用于启动程序,而order.py是一个功能模块,当这个功能模块做好后,需要将这个模块进行合并,就需要用到蓝图,首先要想让这个功能合并到整个项目中,步骤如下:

(1)在单独模块中导入蓝图from flask import Blueprint

(2)初始化蓝图:order_blu=Blueprint("order",__name__) ,这个就类似于主程序入口的app=Flask(__name__)

(3)使用蓝图去注册路由url:相当于写视图函数

@order_blu.route("/order/list")

def order_list():

  pass

(4)将蓝图注册到app上:首先就是导入order.py文件:from order import order_blu,其次app.register_blueprint(order_blu)

================================================================================================

2.使用模块进行蓝图划分

 独立模块cart

(1)独立模块下要有__init__.py文件,views.py。

在__init__.py主要用于导模块,在这个文件里初始化蓝图,定义静态文件夹,渲染模板文件夹等

from flask import Blueprint

cart_blu=Blueprint('cart',__name__,static_folder="static",template_folder="templates",url_prefix="/demo")

from .views import *

所有的视图函数都在views.py文件里

from flask import render_template

from . import cart_blu
@cart_blu.route("/demo")
def index():
    return render_template("cart_index.html")

当写好视图函数后将蓝图注册到程序入口manage.py

from flask import Flask
from cart import cart_blu

app=Flask(__name__)

# 3.把蓝图注册到app上
app.register_blueprint(cart_blu)

@app.route("/")
def index():
    return "index"


if __name__ == '__main__':
    # 存储当前Flask下面都有哪些路由和视图函数
    print(app.url_map)
    app.run(debug=True)

这时候就完成了蓝图注册合并。

原文地址:https://www.cnblogs.com/fjiqiang/p/10586201.html