版权声明: 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
验证: