在服务器环境实际开发过程中,往往要通过写接口来请求或者发送数据,那么到底什么是接口,如何通过调用接口发送或者请求数据呢?
一、接口的定义
简单来说,域名(地址)带上参数就是一个接口,然后通过调用此接口就可获取这个地址下的参数了,如:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
就是一个接口,?后面的就是接口携带的常量参数,此接口会携带一个或多个返回值。
二、用接口发送数据:
针对于Python,发送数据要通过requests包的post()方法:
import requests
# requests.post(url, data="data") # 发送一个数据
# 当发送多个数据时,要用json格式封装起来
parm = {
"touser": userid,
"msgtype": "text",
"agentid": Config.AGENTID,
"text": {
"content": text
},
}
code = requests.post(url, data=json.dumps(parm))
# json.dumps()将字典转换为json格式
三、调用接口接受数据:
1、被动的接收向此地址(路由)发送过来的参数:
(1)?后的data参数,用request.args.get(data)获取:
如前端向后台发送一个数据: <a href="{{ url_for('main.get_more') }}?page={{ page }} &name=jza" class="weui-cell weui-cell_access weui-cell_link">link</a>, 后台可通过request.args.get('page')获取到page对应的值;
(2) 接收post过来的值,用request.form.get(data)获取。
2、主动调用接口,获取返回值, 实例两则:
(1)已知接口:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT
调用接口获取返回值:
TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxccf4abb85f5jjjjkl&corpsecret=Qsm1UPopdHI0TKY5bbrOrYzmfzmR1mjA15dnfFJAKSnx'
# 填写参数
result = requests.get(TOKEN_URL).json().get('access_token') # 获取json格式的某个返回值
(2)当需要给出的常量参数比较多时,可用url字符串的format()函数适配参数:
已知接口: https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=USERID
调用接口得到返回值:
GET_USERINFO_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={ACCESS_TOKEN}&userid={USERID}'
# 将参数挖好坑
user_info = requests.get(GET_USERINFO_URL.format(ACCESS_TOKEN=token, USERID=user_id)).json()
# 填好参数,并且调用接口,解码json, json()方法是requests内置的json解码器
user_name = user_info.get('name')
user_tel = user_info.get('mobile')
user_department = user_info.get('department')
总结:总之,一个规范的接口,应该包含参数说明和返回值,而返回值的获取和数据的发送,则要通过Python内置的强大的requests对象的post和get方法,至于强大的Python-第三方库requests详解参看requests详解