注:本篇的代码和语法基于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填入的参数

    • 未完待续

python3封装Api接口的更多相关文章

  1. Vue实例中封装api接口的思路 在页面中用async,await调用方法请求

    一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时  接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...

  2. vue封装API接口

    第一步: 首先引入axios 然后创建两个文件夹api和http http.js 里面的 1 import axios from 'axios';//引入axios 2 3 //环境的切换 开发环境( ...

  3. 回调函数 和 promise对象,及封装API接口

    1.回调函数:https://blog.csdn.net/baidu_32262373/article/details/54969696 注意:回调函数不一定需要用到 return.如果浏览器支持Pr ...

  4. Vue中axios的封装和api接口的统一管理

    更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...

  5. vue中Axios的封装和API接口的管理

    前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...

  6. vue2.0 + vux (五)api接口封装 及 首页 轮播图制作

    1.安装 jquery 和 whatwg-fetch (优雅的异步请求API) npm install jquery --save npm install whatwg-fetch --save 2. ...

  7. 【uni-app】uni.request二次封装,更好的管理api接口和使用

    前言 之前写了一个Vue.js的axios二次封装(点击跳转),这次是uni-app,uni-app是基于vue.js框架的,我觉得是很好用的一个框架,而且一套代码编译那么多平台,非常节省成本,当然, ...

  8. 【vue】axios二次封装,更好的管理api接口和使用

    在现在的前端开发中,前后端分离开发比较主流,所以在封装方法和模块化上也是非常需要掌握的一门技巧.而axios的封装也是非常的多,下面的封装其实跟百度上搜出来的axios封装或者axios二次封装区别不 ...

  9. 循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理

    在前面随笔<循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...

随机推荐

  1. SD-SDI播出系统---使用GTX TX产生恢复时钟

    SD-SDI播出系统---使用GTX TX产生恢复时钟 1. 2.SD-SDI恢复时钟的生成

  2. Weekend Log 4.6

    PHP相关 常用PHP编译 .\/configure 12 ./configure -prefix=/usr/local/php --with-config-file-path=/usr/local/ ...

  3. TStringList的用法

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. TStringList 常用方法与属性: var List: TStringList; i: Integer; begin ...

  4. ALGO-140_蓝桥杯_算法训练_P1101

    有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函数中定义一个prut类型的结构体数组,输入每个元素的值,计算并输出提货单的 ...

  5. 【springboot】之利用shell脚本优雅启动,关闭springboot服务

    springbot开发api接口服务,生产环境中一般都是运行独立的jar,在部署过程中涉及到服务的优雅启动,关闭, springboot官方文档给出的有两种方式, 1.使用http shutdown ...

  6. 【redis】之centos6.x安装redis3.0.x

    centos6.9_x86_64 1.下载redis安装包 http://download.redis.io/releases/redis-3.2.9.tar.gz 2.解压 编译到指定得目录 mak ...

  7. 关于java前端入门的一些简单的看法

    html:是网页的骨架,静态网页初步的轮廓,简单粗糙,僵硬又没有美感.表单的标签<form>,里面的<input>很常用,里面有type属性等css:为了更加灵活,常与div一 ...

  8. 服务网关zuul之五:熔断

    路由熔断 当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行一降级.Zuul给我们提供了这样的支持.当某个服务出现异常时,直接返回我们预设的信息. 如果没有配置fall ...

  9. 一次聊天引发的思考--java并发包

    一次聊天,谈到了死锁的解决.可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出.痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景. ...

  10. [UE4]运行时脱离视角,进入自由视角

    按 Shift + F1让鼠标脱离游戏窗口,然后点击右上角的按钮,然后鼠标在游戏窗口点击一下,就只有自由漫游了. 还可以点击选中Word Outliner窗口的物体.