当前位置:   article > 正文

python flask使用blueprint实现不同版本api模块化_from routes import blueprint

from routes import blueprint

 文件结构如下


├── index.py
└── src
    └── api
        ├── __init__.py
        ├── v1                     # 版本1
        │   ├── __init__.py
        │   └── routes.py
        └── v2                     # 版本2
            ├── __init__.py
            └── routes.py
 

 在src/api/v1/routes.py中实现版本1的路由代码

  1. from flask import Blueprint
  2. app = Blueprint('v1', __name__)
  3. @app.route('/test', methods=['GET'])
  4. def test():
  5. return 'test v1'

在src/api/v1/__init__.py中导出版本1的app

from .routes import app

同理,在src/api/v2/routes.py中实现版本2的路由代码

  1. from flask import Blueprint
  2. app = Blueprint('v2', __name__)
  3. @app.route('/test', methods=['GET'])
  4. def test():
  5. return 'test v2'

在src/api/v2/__init__.py中导出版本1的app

from .routes import app

接着在在src/api/__init__.py中分别导出两个版本的app

  1. from .v1 import app as app_v1
  2. from .v2 import app as app_v2

最后在index.py中使用

  1. from flask import Flask
  2. from src.api import app_v1, app_v2
  3. app = Flask(__name__)
  4. app.register_blueprint(app_v1, url_prefix='/api/v1')
  5. app.register_blueprint(app_v2, url_prefix='/api/v2')
  6. if __name__ == "__main__":
  7. app.run('0.0.0.0', '8888')

客户端访问http://localhost:8888/api/v1/test 会响应版本1的路由

访问http://localhost:8888/api/v2/test 会响应版本2的路由

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/587118
推荐阅读
相关标签
  

闽ICP备14008679号