接收JSON数据

API请求分为GETPOST两种请求方式,并使用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