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

Flask调用API返回500内部服务器错误,求问题排查

问题排查与解决思路

首先,Flask默认在生产模式下不会展示具体错误详情,第一步先开启调试模式,就能看到触发500错误的具体栈信息:

if __name__ == "__main__":
    app.run(debug=True)

启动后访问页面,就能定位到具体出错点,这是最快的排查方式。

结合你的代码,大概率是以下几个原因导致的:

  • GET请求的参数传递不规范:requests.get中使用data=payload不符合HTTP规范,GET请求的参数应当通过params传递;如果外部API要求接收JSON格式的请求体,你应该改用requests.post方法。单独脚本运行时可能外部API兼容了这种不规范请求,但Flask环境下的请求处理逻辑触发了错误。
  • 返回内容格式不符合Flask要求:req.content是二进制格式,Flask视图函数的返回值需要是字符串、JSON响应或Response对象等类型。直接返回二进制数据会导致Flask解析失败,你可以改成返回req.text,或者用Flask的jsonify处理响应:
    from flask import jsonify
    # ...
    return jsonify(json.loads(req.text))
    
  • 未捕获请求异常:单独脚本运行时如果出现网络超时、API返回4xx/5xx错误等异常,可能你没留意到,但Flask会因为未捕获的异常直接返回500。建议在视图函数中添加异常捕获逻辑:
    @app.route("/")
    def getData():
        try:
            # 原有请求逻辑
            req = requests.get("<url>", auth=HTTPBasicAuth(username, password), headers=reqHeaders, data=payload)
            req.raise_for_status()  # 触发HTTP错误对应的异常
            return req.text
        except Exception as e:
            return f"请求出错: {str(e)}", 500
    

先开启调试模式确认具体错误,再针对性修复上述问题,即可解决500内部服务器错误。

内容的提问来源于stack exchange,提问作者lyubol

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:35:27