• Python Flask Blueprint 蓝图


    Python Flask Blueprint 蓝图

    本篇来了解一下 Flask 中 Blueprint 蓝图,什么蓝图 。。就是一个分模块的扩展而已,用来让不同的 业务模块api 分到不同的python文件中 而已,和 Spring mvc 的 class 级别 的@RequestMapping("/") 差不多。。

    image-20220719153956741

    前因:

    为什么要引入 Blueprint 蓝图呢? 因为如果默认把API接口都写到 一个py 文件里面 那么这个文件会越来越复杂,会越来越臃肿 导致 无法维护 ,所以按照正常的开发逻辑 也需要进行模块的划分 ,那么就需要引入 Blueprint

    1.安装 Blueprint

    需要先在环境中 使用 pip 安装一下 Blueprint 扩展

    pip install Blueprint
    

    2.编写Flask 入口 py文件

    from flask import Flask
    
    
    app = Flask(__name__)
    
    @app.route('/')
    def helloworld():
        return 'Hello world python flask'
      
    # 新版本应该是 不支持这样启动了
    # if __name__ == '__main__':
    #     app.run()
    

    3.编写User模块 user.py文件

    根据业务 可以创建新的模块 然后通过Blueprint 去注册路由

    from flask import Blueprint
    
    user = Blueprint('user',__name__)
    
    @user.route('/user/username')
    def username():
        return 'get username : johnny'
    
        
    

    4.Blueprint注册到 Flask app上

    在入口文件中 把刚刚创建的 Blueprint 注册上去

    from flask import Flask
    
    #引入 刚刚创建的 blueprint
    from user import user
    
    app = Flask(__name__)
    #注册到 flask app上
    app.register_blueprint(user)
    
    @app.route('/')
    def helloworld():
        return 'Hello world python flask'
    
    # if __name__ == '__main__':
    #     app.run()
    

    5.验证

    访问:/user/username 得到如下:

    image-20220719153413899

    访问: / 得到如下:

    image-20220719153444663

    总结:

    使用 Blueprint很简单 按照下面的流程

    1. pip install Blueprint

    2. 创建 新模块文件,在其中创建Blueprint对象 如:

      # Blueprint两个参数('蓝图名字',蓝图所在位置')
      user = Blueprint('user',__name__) 
      
    3. Blueprint注册到 Flask app上

      #引入 刚刚创建的 blueprint
      from user import user
      app = Flask(__name__)
      
      app.register_blueprint(user)
      

    可以把Blueprint 理解为 Spring mvc 的 Class 级别 的@RequestMapping("/user") 差不多。。

    欢迎大家访问 个人博客 Johnny小屋
    欢迎关注个人公众号

    欢迎关注个人公众号

  • 相关阅读:
    ESP8266-Arduino编程实例-PWM
    nacos源码
    【C++语言】继承
    Java中堆和栈的概念和区别-2
    【C++ Efficiency】over-eager evaluation的两种做法:caching和prefetching
    GROUP BY与COUNT(也可以换成其他聚合函数)用法详解
    拓扑排序(C++)
    基于51单片机智能家居家电继电器开关插座定时WiFi无线proteus仿真原理图PCB
    Java Double isNaN(double v)方法具有什么功能呢?
    elementUI循环动态生成表格内容
  • 原文地址:https://www.cnblogs.com/askajohnny/p/16539103.html