python3封装Api接口
2024-10-13 12:13:08
注:本篇的代码和语法基于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填入的参数
- 未完待续
最新文章
- 使用 AForge.NET 做视频采集
- POJ 2893 M × N Puzzle(树状数组求逆序对)
- paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场
- 支持4G以上文件的MD5单元
- js 中文排序
- hibernate生成查询语句但查不到数据
- nodejs 初学笔记
- Android 查看是否有存储卡插入
- CMD下用csc.exe编译.cs 代码
- Maven使用-创建一个Web项目
- 原型(Prototype)模式
- eclipse中console的输出行数控制
- Scanner的使用 猜数字 +猜电影
- nodeJS模块寻址规则
- saltstack一
- csharp: using HtmlAgilityPack and ScrapySharp reading Url find text
- 【配置详解】Quartz配置文件详解
- springboot(五)读写分离,多个读库,Druid监控--待整理
- php 微信登录 公众号 获取用户信息 微信网页授权
- maven核心,pom.xml详解
热门文章
- sql日期操作
- Thinkphp 3.1. 3 ueditor 1.4.3 添加水印
- Django REST framework 总结(附源码剖析)
- 无后缀名伪静态路径在IIS7.0的网站提示 ";404 - File or directory not found";
- C#修改类模板
- 开启Unity3D之旅
- Hadoop概念学习系列之Hadoop新手学习指导之入门需知(二十)
- ubuntu 安装php 扩展和查看扩展包
- 【IIS错误】IIS各种错误
- Kubernetes DNS服务配置案例