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填入的参数
- 未完待续
python3封装Api接口的更多相关文章
- Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时 接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...
- vue封装API接口
第一步: 首先引入axios 然后创建两个文件夹api和http http.js 里面的 1 import axios from 'axios';//引入axios 2 3 //环境的切换 开发环境( ...
- 回调函数 和 promise对象,及封装API接口
1.回调函数:https://blog.csdn.net/baidu_32262373/article/details/54969696 注意:回调函数不一定需要用到 return.如果浏览器支持Pr ...
- Vue中axios的封装和api接口的统一管理
更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...
- vue中Axios的封装和API接口的管理
前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...
- vue2.0 + vux (五)api接口封装 及 首页 轮播图制作
1.安装 jquery 和 whatwg-fetch (优雅的异步请求API) npm install jquery --save npm install whatwg-fetch --save 2. ...
- 【uni-app】uni.request二次封装,更好的管理api接口和使用
前言 之前写了一个Vue.js的axios二次封装(点击跳转),这次是uni-app,uni-app是基于vue.js框架的,我觉得是很好用的一个框架,而且一套代码编译那么多平台,非常节省成本,当然, ...
- 【vue】axios二次封装,更好的管理api接口和使用
在现在的前端开发中,前后端分离开发比较主流,所以在封装方法和模块化上也是非常需要掌握的一门技巧.而axios的封装也是非常的多,下面的封装其实跟百度上搜出来的axios封装或者axios二次封装区别不 ...
- 循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
在前面随笔<循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...
随机推荐
- R基于Bayes理论实现中文人员特性的性别判定
参见 基于中文人员特征的性别判定方法 理论,告诉一个名字,来猜猜是男是女,多多少少有点算命的味道.此命题是一种有监督的学习方法,从标注好的训练数据学习到一个预测模型,然后对未标注的数据进行预测. 1 ...
- JScript 正则表达式语法表
字符 描述 \ 标记下一个字符是特殊字符或文字.例如,"n" 和字符 "n" 匹配."\n" 则和换行字符匹配.序列 "\\&qu ...
- XE5 Android 开发实现手机打电话和发短信 [转]
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...
- 黄聪:jquery+Datatables出现数据过长,表格不自动换行,columns设置width失效的办法
添加下面的CSS代码即可: table.dataTable.nowrap th, table.dataTable.nowrap td{white-space: normal !important;}
- DS二叉树--二叉树构建与遍历
题目描述 给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历.中序遍历和后序遍历结果 输入 第一 ...
- C++进阶--理解左值和右值
/* * 理解左值和右值 * * * 为什么要关心这个? * 1. 有助于理解C++结构,搞明白编译器的错误和警告 * 2. C++ 11中引入了右值引用,理解左值右值是前提 * */ /* * 简单 ...
- mysql备份学习笔记及xtrabackup安装
(参考书籍:<深入浅出MySQL>) 一.备份恢复策略 a) 确定要备份的表的存储引擎是事务型还是非事务型 b) 确定使用全备份还是增量备份 c) 定期做备份 ...
- gmake缺失错误
原文:http://blog.csdn.net/syh_486_007/article/details/53862831 编译nachos程序的时候发现了这样一个错误gmake: command no ...
- C语言怎么简单测试为大小端模式
作者:Slience_J 原文地址:https://blog.csdn.net/slience_j/article/details/52048267 1.什么是大小端模式? 大端模式,是指数据的高字节 ...
- HDOJ 2004 成绩转换
#include<cstdio> #include<iostream> using namespace std; int main() { int score; while ( ...