接收JSON数据
API请求分为GET和POST两种请求方式,并使用request.method获取请求方式。如果请求方式为GET,我们使用jsonify函数将响应结果转换为JSON格式,并返回给客户端。如果请求方式为POST,我们使用request.get_json()获取POST请求参数,并执行API操作。最后,我们将API响应结果转换为JSON格式,并返回给客户端。
from flask import Flask, request, jsonify
import json
app = Flask(__name__)
@app.route('/api', methods=['GET', 'POST'])
def api():
# 处理API请求
if request.method == 'GET':
# 获取API请求参数
params = request.args.getlist('key1')
# 执行API操作
print(params)
return jsonify({'message': 'Hello, World!'})
elif request.method == 'POST':
# 处理POST请求参数
data = request.get_json()
print('数据类型:', type(data))
print('输出字典里所有KEY:', data.keys())
print('输出字典里所有value:', data.values())
print('根据KEY输出值:', data['name'])
#根据key输出value
for key in data.keys():
print(key, data[key])
#输出所有的value
for value in data.values():
print(value)
# 返回API响应结果
return jsonify({'message': 'API result:', 'result': 'result'})
else:
return jsonify({'message': 'Invalid request method.'})
if __name__ == '__main__':
app.run(debug=True)发起get请求
import requests
import json
# 定义API接口URL和请求参数
url = 'http://127.0.0.1:5000/api'
params = {'key1': 'value1', 'key2': 'value2'}
# 发送API请求
response = requests.get(url, params=params)
# 打印API响应结果
print(response.text)
# 转成字典打印输出
json_data = json.loads(response.text)
for key in json_data.keys():
print(key, json_data[key])
发起POST请求
curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice", "age": 25}' http://localhost:5000/api