1. flask 蓝图介绍;

          

   image.png           

2.蓝图项目相关目录结构;


image.png


3.蓝图相关模块代码;


(1).APP01 view 代码;


from flask import Blueprint
from flask import request, Response
import json
app01 = Blueprint('app01', __name__)

@app01.route('/api/v1', methods=['GET', 'POST', '[DELETE]'])
def mainApp0v1():
    data = Response(json.dumps({"code": 0, "data": "方法不允许"}), mimetype='application/json')
    if request.method == "GET":
        return QueryNamev1()
    else:
        return data
def QueryNamev1():
    data = "我是测试app01项目-api.v1版本"
    return Response(json.dumps({"code": 0, "data": data,"status":"success"}), mimetype='application/json')


(1).APP02 view 代码;

from flask import Blueprint
from flask import request, Response
app02= Blueprint('app02', __name__)
import json
@app02.route('/api/v1', methods=['GET', 'POST','[DELETE]'])
def mainAppv1():
    data =  Response(json.dumps({"code": 0, "data": "方法不允许"}), mimetype='application/json')
    if request.method == "GET":
        return QueryName()
    else:
        return data
def QueryName():
    data = "我是测试app02项目"
    return Response(json.dumps({"code": 0, "data": data, "status": "success"}), mimetype='application/json')


(4).蓝图(postman客户端测试):


4.1 APP 01 测试;

image.png


4.2 APP02 测试;

   image.png



5.针对同项目不同访问路由访问;

   5.1代码示例;

from flask import Blueprint
from flask import request, Response
import json
app01 = Blueprint('app01', __name__)

@app01.route('/api/v1', methods=['GET', 'POST', '[DELETE]'])
def mainApp0v1():
    data = Response(json.dumps({"code": 0, "data": "方法不允许"}), mimetype='application/json')
    if request.method == "GET":
        return QueryNamev1()
    else:
        return data

def QueryNamev1():
    data = "我是测试app01项目-api.v1版本"
    return Response(json.dumps({"code": 0, "data": data,"status":"success"}), mimetype='application/json')

@app01.route('/api/v2', methods=['GET', 'POST', '[DELETE]'])
def mainAppv2():
    data = Response(json.dumps({"code": 0, "data": "方法不允许"}), mimetype='application/json')
    if request.method == "GET":
        return QueryNamev2()
    else:
        return data

def QueryNamev2():
    data = "我是测试app01项目-api.v2 版本"
    return Response(json.dumps({"code": 0, "data": data,"status":"success"}), mimetype='application/json')


5.2 Postman 测试结果;

    api v1版本

image.png    

api v2版本


image.png