一个简单的http-api

协助测试小工具:

from flask import Flask, request, jsonify
import logging

logging.basicConfig(level=logging.DEBUG)
app = Flask(__name__)

BASE_URL = '/'
@app.route(BASE_URL, methods=['GET'])
def geng():
    result = {
        'msg': "welcome,test!"
    }
    # 返回json
    return jsonify(result)


@app.route(BASE_URL + "head", methods=['POST'])
def head():
    global response
    headers = request.headers
    header = {}
    for k, v in headers.items():
        header[k] = v
    # # response['headers'] = headers
    # app.logger.info(request.method)
    # app.logger.info(request.form)
    # # app.logger.info(request.json)
    # app.logger.info(request.data)
    # app.logger.info(request.headers)
    # app.logger.info('==============')
    response = {'headers': header, 'method': request.method}
    try:
       response['json'] = request.json
    except Exception as e:
       # app.logger.info('err:' + str(e))
       response['form'] = str(request.form)
       response['data'] = str(request.data)
       response['args'] = str(request.args)

    finally:
        app.logger.info(response)
        return jsonify(response)


@app.route(BASE_URL + 'test/mad', methods=['GET'])
def test_getllh():
    # 解析请求参数
    # param = request.args.to_dict()
    result = {
        'msg': "welcome,test!"
    }
    # 返回json
    return jsonify(result)

@app.route(BASE_URL + 'test', methods=['GET'])
def test():
    # 解析请求参数
    param = request.args.to_dict()
    result = {
        'msg': "welcome,test!",
        'param': param
    }
    # 返回json
    if param:
        result_json = result

    else:
        result_json = {
            'code': '-1', 'msg': "缺少参数"
    }
    return jsonify(result_json)

@app.route(BASE_URL + 'get/test', methods=['GET'])
def test_get():
    # 解析请求参数
    param = request.args.to_dict()
    result = {
        'msg': "welcome,test!"
    }
    # 返回json
    if param:
        return jsonify(param)
    else:
        return jsonify(result)

# 接收get请求
@app.route(BASE_URL + 'api/get/test_welcome', methods=['POST'])
def test_get_test():
    # 解析请求参数
    param = request.args.to_dict()
    name = param['name']
    result = {
        'msg': "welcome! " + name
    }
    # 返回json

    return jsonify(result)


# 接收post请求
@app.route(BASE_URL + 'api/post/test', methods=['POST'])
def test_post_test():
    # 解析请求参数
    # data = request.get_data()
    # json_data = json.loads(data.decode("utf-8"))
    # name = json_data['name']
    # result = {
    #     'msg': "你好哈! " + name
    # }
    # # 返回json
    result = {'msg': u'hello,baby'}

    return jsonify(result)


@app.route(BASE_URL + 'iflow', methods=['GET'])
def iflow():
    # 解析请求参数
    # data = request.get_data()
    # json_data = json.loads(data.decode("utf-8"))
    # name = json_data['name']
    datalist = [{'label': '键1', 'value': '值1'}, {'label': '键2', 'value': '值2'}, {'label': '键3', 'value': '值3'}]
    result = {
        'msg': 'ok!',
        'code': 0,
        'data': datalist
    }
    # # 返回json
    # result = {'label': '键1', 'value': '值1'}
    return jsonify(result)


if __name__ == '__main__':
    # print(app.url_map)
    handler = logging.FileHandler('flask.log', encoding='UTF-8')  # 设置日志字符集和存储路径名字
    logging_format = logging.Formatter(  # 设置日志格式
        '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
    handler.setFormatter(logging_format)
    app.logger.addHandler(handler)
    app.run(debug=True, host='0.0.0.0', port=6125)



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容