flask的Blueprint蓝图的使用

版权声明: https://blog.csdn.net/JENREY/article/details/86509121

Blueprint是flask库中的一个模块,作为蓝图,必定有它的道理。它是Flask项目的一种组件式开发,可以在一个应用内或跨越 多个项目共用蓝图。使用蓝图可以极大地简化大型应用的开发难度,也为Flask扩展 提供了一种在应用中注册服务的集中式机制。 模块化管理程序路由是它的特色,它使程序结构清晰、简单易懂。

先放项目结构:

蓝图的主要作用就是模块化路由

首先我们新建一个python的包

然后创建一个py文件,代码如下

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# *************************************
# author: suijr
# create: 2019/1/16 15:28
# filename: testblue.py
# usage:蓝图的使用方法,注意需要在声明蓝图的地方来使用蓝图的路由注册
#
#
# *************************************
import json

from flask import Blueprint, request
from flask.json import jsonify

maina = Blueprint('suiyi', __name__)  # name=随意,import_name要是__name__


@maina.route('/qwe', methods=['GET', 'POST'])
def hello_world():
    TODO: '测试POST请求'
    data = {}
    for key in request.args:  # 解析参数
        data[key] = request.args.get(key)
    # print(data)  # http://node1:8888/mockservice?first=bb&cc=dd
    TODO: '测试GET请求'
    print(request.form)  # ImmutableMultiDict([('first', '123'), ('last', '456')])
    # print(request.args.get('first'))
    print(json.dumps(request.form))
    # 请求成功返回
    message = {

        "status": "sucess",
    }
    return jsonify(message)

这里需要注意的是蓝图maina并没有在flask的app实例对象中进行注册,下面我们去进行注册

在app.py文件中的代码如下

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# *************************************
# author: suijr
# create: 2019/01/10 9:16
# filename: app.py
# usage
#
#
# *************************************

from flask import Flask, request, json, jsonify
import flask

from libs.commonUtils import _get_parameters
from os import popen as Popen

app = Flask(__name__)
# 在app中注册蓝图maina
from testBlueprint.testblue import maina

app.register_blueprint(blueprint=maina, url_prefix='/asd')  # 注册蓝图maina,url_prefix蓝图路由将以此为前缀。


@app.route('/mockservice', methods=['GET', 'POST'])
def hello_world():
    TODO: '测试POST请求'
    data = {}
    for key in request.args:  # 解析参数
        data[key] = request.args.get(key)
    # print(data)  # http://node1:8888/mockservice?first=bb&cc=dd
    TODO: '测试GET请求'
    print(request.form)  # ImmutableMultiDict([('first', '123'), ('last', '456')])
    # print(request.args.get('first'))
    print(json.dumps(request.form))
    # 请求成功返回
    message = {

        "status": "sucess",
    }
    return jsonify(message)

    # output = Popen('ls')
    # a = output.read()
    # a = str(request.headers)
    # a = flask.request.form['first']
    # print(a)
    # return a


# 获取setting.conf配置文件中的配置信息
run_conf = _get_parameters('run_conf')
RUN_PORT = int(run_conf['port'])  # 注意这里是小写
RUN_DEBUG = run_conf['debug']
RUN_HOST = run_conf['host']

if __name__ == '__main__':
    app.run(host=RUN_HOST, debug=RUN_DEBUG, port=RUN_PORT)
    # pass

验证:

猜你喜欢

转载自blog.csdn.net/JENREY/article/details/86509121