zoukankan      html  css  js  c++  java
  • 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')
  • 相关阅读:
    各进制转换
    免root xshell连接termux
    sqlmap怎么拿shell
    SSRF漏洞
    国外安全网站、社区论坛、博客、公司、在线工具等整合收集
    渗透测试常用工具问题总结
    cdn绕过
    xss注入
    永恒之蓝(msf17010)kali复现
    文件上传漏洞和绕过
  • 原文地址:https://www.cnblogs.com/carlvine/p/9116928.html
Copyright © 2011-2022 走看看