You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两个Flask服务器通信时,如何接收请求返回的数据?

解决两个Flask服务器间的数据传输问题

首先先修正第一个服务器的代码问题,避免运行报错:

  • 缩进错误:if sOper == 1需要嵌套在if request.method == 'POST'的代码块内,否则GET请求时会因sOper未定义抛出异常
  • 异常处理:当sOper不等于1时,返回错误响应而非直接抛出异常,更符合Web服务规范

修正后的第一个服务器代码:

from flask import Flask, json, request
import os.path

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def docu_test():
    if request.method == 'POST':
        sOper = int(request.form['test'])
        if sOper == 1:
            with open('data/document.json', mode='r') as f:
                document: dict = json.load(f)
                return document  # Flask会自动将字典转为JSON响应
        else:
            return {"error": "Invalid operation"}, 400
    # 处理GET请求的默认响应
    return {"message": "Send a POST request with test=1 to get the document"}, 200

if __name__ == '__main__' and os.path.exists('data/document.json'):
    app.run(host="127.0.0.1", port=1240, debug=True)  # 开启debug方便调试

然后修改第二个服务器的代码,替换pass位置的代码来接收并处理第一个服务器返回的数据:

  • 使用response.json()解析第一个服务器返回的JSON响应(Flask会自动把字典转为JSON格式响应)
  • 可直接返回数据给客户端,或做打印、保存文件等自定义处理

修改后的第二个服务器代码:

from flask import Flask, json
import requests

api = Flask(__name__)

@api.route('/', methods=['GET'])
def testing():
    # 发送POST请求到第一个服务器
    response = requests.post("http://127.0.0.1:1240", data={'test':1})
    # 检查请求是否成功
    if response.status_code == 200:
        # 解析返回的JSON数据为Python字典
        document_data = response.json()
        # 自定义处理:比如打印数据
        print("Received document data:", document_data)
        # 将数据返回给访问第二个服务器的客户端
        return document_data
    else:
        # 请求失败时返回错误信息
        return {"error": "Failed to get document data", "status": response.status_code}, response.status_code

if __name__ == '__main__':
    api.run(host="127.0.0.1", port=2480, debug=True)

关键说明

  • 第一个服务器返回字典时,Flask会自动设置响应头Content-Type: application/json并完成字典到JSON字符串的序列化
  • 第二个服务器通过response.json()可直接将JSON响应转回Python字典,方便后续操作
  • 启动顺序:必须先启动第一个服务器,再启动第二个服务器,否则会因连接失败报错

内容的提问来源于stack exchange,提问作者Giovanni di Giuseppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:22:23