Flask写mock服务(带httpCode)

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

app = Flask(__name__)

app.config['JSON_AS_ASCII'] = False


def check_float(string):
    str1 = str(string)
    if str1.count('.') > 1:
        return False
    elif str1.count('-') > 0:
        return False
    elif str1.isdigit():
        return False
    else:
        new_str = str1.split('.')
        frist_num = new_str[0]
        if frist_num.isdigit() and new_str[1].isdigit():
            return True
        else:
            return False


@app.route('/pay', methods=['POST','GET'])
def pay():
    user_id = request.json.get('user_id')
    price = request.json.get('price')
    if user_id and price:
        if price.isdigit():
            price = int(price)
            result = {
                "code": 200,
                "msg": "支付成功"
            }
            status_code = 200
        elif check_float(price):
            price = float(price)
            result = {
                "code": 200,
                "msg": "支付成功"
            }
            status_code = 200
        else:
            result = {
                "code": 302,
                "msg": "请求参数错误,请检查入参"
            }
            status_code = 302
    else:
        result = {
            "code": 302,
            "msg": "请求参数错误,请检查入参"
        }
        status_code = 302

    if request.headers["api"] == '-1':
        result = {
            "code": 400,
            "msg": "请求头api不能为-1"
        }
        status_code = 400

    response = make_response(json.dumps(result), status_code)
    response.headers["Content-Type"] = "application/json"

    return response


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

提取get接口传入参数,也是用request.args.get('key')获取,例:

还有动态路由方式获取:

@app.route('/test/<name>', methods=['GET'])
def test(name):
    print name
    return render_template('/test.html')
原文地址:https://www.cnblogs.com/carlvine/p/9116928.html