• 蓝图的使用


    蓝图就是将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)

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

  • 相关阅读:
    Jenkins运行完Test后,把ngreport生成的测试报告 拷贝到相应的文件夹
    解析xml报classnotfound错误
    配置NGReport 报告中文
    fork()调用使子进程先于父进程被调度
    堆排序
    良序原理
    高速缓冲区初始化
    Python3:输出当前目录所有目录和文件--walk()函数
    Python3:输出当前目录所有文件的第二种方式-walk()函数
    Python3:递归实现输出目录下所有的文件
  • 原文地址:https://www.cnblogs.com/fjiqiang/p/10586201.html
Copyright © 2020-2023  润新知