zoukankan      html  css  js  c++  java
  • python3封装Api接口

    注:本篇的代码和语法基于Python3.5环境,下面将用到Python 的Flask框架

    封装接口主要讲静态接口(无参数传入)、动态接口(有参数传入,不同参数返回的信息不同)。针对动态接口有三种传参方式:key_value、json串和拼接方式入参

      • 一、封装成无参数传入的接口
        from flask import Flask,jsonify,request
        data = {'huhy':{'age':24,'sex':'女'},
                'liuer':{'age':12,'sex':'男'}
                }
        app = Flask(__name__)#创建一个服务,赋值给APP
        @app.route('/get_user',methods=['post'])#指定接口访问的路径,支持什么请求方式get,post
        #讲的是封装成一种静态的接口,无任何参数传入
        def get_user():#-----这里的函数名称可以任意取
            return  jsonify(data)#把字典转成json串返回
        
        app.run(host='0.0.0.0',port=8802,debug=True)
        #这个host:windows就一个网卡,可以不写,而liux有多个网卡,写成0:0:0可以接受任意网卡信息,
         通过访问127.0.0.1:8802/get_user,可返回data信息
        #debug:调试的时候,可以指定debug=true;如果是提供接口给他人使用的时候,debug要去掉
        接口返回的截图如下:



      • 二、有参数传入的接口
         1.通过key_value方式传参
        from flask import Flask,jsonify,request
        data = {'huhy':{'age':24,'sex':'女'},
                'liuer':{'age':12,'sex':'男'}
                }
        err = {'zz':404,
               'yy':502
               }
        app = Flask(__name__)#创建一个服务,赋值给APP
        @app.route('/get_user',methods=['post'])#指定接口访问的路径,支持什么请求方式get,post
        
        # key_values方式传参
        def get_user():
            username = request.form.get('username')#获取接口请求中form-data的username参数传入的值
            if username in data:#判断请求传入的参数是否在字典里
                return jsonify(data[username])
        #如果在的话,则返回data对应key的值转成的json串信息
            else:
                return jsonify(err[username])
        #如果不在的话,返回err对应key的value转成的json串信息
        
        app.run(host='0.0.0.0',port=8802,debug=True)
        #这个host:windows就一个网卡,可以不写,而liux有多个网卡,写成0:0:0可以接受任意网卡信息
        #通过访问127.0.0.1:8802/get_user,form—data里输入username参数,则可看到返回信息
        

        接口返回的截图如下:



        2.通过json串方式传参
        from flask import Flask,jsonify,request
        data = {'huhy':{'age':24,'sex':'女'},
                'liuer':{'age':12,'sex':'男'}
                }
        err = {'zz':404,
               'yy':502
               }
        app = Flask(__name__)#创建一个服务,赋值给APP
        @app.route('/get_user',methods=['post'])#指定接口访问的路径,支持什么请求方式get,post
        
        #json方式传参
        def get_ss():
            username = request.json.get('username1')#获取带json串请求的username参数传入的值
            if username in data:  # 判断请求传入的参数是否在字典里
                return jsonify(data[username])
        #如果在的话,则返回data对应key的值转成的json串信息
            else:
                return jsonify(err[username])
        #如果不在的话,返回err对应key的value转成的json串信息
        app.run(host='0.0.0.0',port=8802,debug=True)
        #这个host:windows就一个网卡,可以不写,而liux有多个网卡,写成0:0:0可以接受任意网卡信息
        #通过访问127.0.0.1:8802/get_user,form—data里输入username参数,则可看到返回信息
        接口返回的截图如下:



        3.请求链接直接拼接入参方式
        from flask import Flask,jsonify,request
        data = {'huhy':{'age':24,'sex':'女'},
                'liuer':{'age':12,'sex':'男'}
                }
        err = {'zz':404,
               'yy':502
               }
        app = Flask(__name__)#创建一个服务,赋值给APP
        @app.route('/get_user',methods=['post'])#指定接口访问的路径,支持什么请求方式get,post
        
        #请求后直接拼接入参方式
        def get_ss():
            username = request.args.get('username')#使用request.args.get方式获取拼接的入参数据
            if username in data:  # 判断请求传入的参数是否在字典里
                return jsonify(data[username])
        	#如果在的话,则返回data对应key的值转成的json串信息
            else:
                return jsonify(err[username])
        	#如果不在的话,返回err对应key的value转成的json串信息
        app.run(host='0.0.0.0',port=8802,debug=True)
        #这个host:windows就一个网卡,可以不写,而liux有多个网卡,写成0:0:0可以接受任意网卡信息
        #通过访问127.0.0.1:8802/get_user,form—data里输入username参数,则可看到返回信息

        接口返回的截图,如下:




        4.request.values.get()获取请求参数的方法,不仅支持获取连接拼接的参数,而且还能获取body form填入的参数

      • 未完待续
  • 相关阅读:
    MFC的DoModal(转)
    MFC程序执行过程剖析(转)
    中控面试记录
    从内核文件系统看文件读写过程(转)
    dbutils工具
    java中求利息的代码
    java中求输入一个数,并计算其平方根~~~
    java中length的用法
    java中关于length的真确理解~~~~有补充的请跟帖~~~
    java二维数组的长度
  • 原文地址:https://www.cnblogs.com/ruiy/p/9469129.html
Copyright © 2011-2022 走看看