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

Flask部署至Ubuntu服务器后跨请求丢失全局变量值的问题求助

Flask部署至Ubuntu服务器后跨请求丢失全局变量值的问题求助

我正在做一个远程监控类的项目,核心是搭建一个Flask服务器,用于接收汽车通过LTE发来的速度和温度数据,前端再通过API获取这些数据进行展示。具体流程是:汽车通过POST请求把数据发送到/API/post接口,服务器接收后把数据转存到全局变量里,之后前端从/api/getval接口拉取这些值。

之前在Windows笔记本上用flask run命令开发测试时,这套逻辑完全没问题,运行得非常流畅。但当我把代码部署到家里的Ubuntu服务器(用Nginx+Gunicorn托管)之后,所有功能都崩了——除了部署路径,我没修改任何代码,但现在POST请求虽然能正确接收数据并返回(接口会把接收到的Speed和Temp一起返回,这说明当时全局变量是正确赋值的),但调用/api/getval接口时,返回的Speed和Temp全是初始的0值。

我排查了一些点:

  • POST请求里能正确解析出data变量,直接返回data也没问题,说明数据接收是正常的
  • 全局变量speed和temp是在import语句之后就初始化的,代码里没有其他地方会把它们重置为0

下面是处理这两个请求的路由代码:

def handle():
    global speed
    global temp

    data = request.get_json()

    speed = data['Speed']
    temp = data['Temp']
    return jsonify({'result' : '200', 'Speed' : speed, 'Temp' : temp})

@app.route('/api/getval')
def getdata():
    return jsonify({ 'Speed' : speed, 'Temp' : temp })

最让我困惑的不是功能失效,而是它曾经正常工作——Windows开发环境完全没问题,一部署到Ubuntu就出问题,实在搞不懂哪里出了状况,求各位帮忙分析一下!

备注:内容来源于stack exchange,提问作者Brody Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:34:30