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

Flask API的POST端点无法正常工作,请求持续处于处理状态

Flask POST端点请求卡住无响应的排查与解决

核心问题分析

请求一直处于in progress且无控制台输出,本质是reqparse.RequestParser()默认不处理application/json格式的请求体。当你设置该请求头后,解析器无法正确读取参数,导致请求阻塞在parser.parse_args()步骤,后续代码根本没执行。

解决步骤

1. 让reqparse支持JSON请求体

修改请求解析器,添加location='json'参数,指定从JSON格式的请求体中读取参数:

parser = reqparse.RequestParser()
parser.add_argument('text', required=True, location='json')

2. 替换Pandas弃用方法

pd.DataFrame.append()已被官方弃用,改用pd.concat()避免后续潜在报错:

# 替换原data.append(new_data...)代码
data = pd.concat([data, new_data], ignore_index=True)

3. 返回标准JSON响应

Flask-RESTful要求资源方法返回JSON格式响应,纯数字状态码可能导致客户端处理异常:

return {'status': 'success'}, 200

4. 验证文件路径(Pydroid环境)

在Pydroid 3中,确保words.csv和脚本在同一工作目录,可添加代码确认:

import os
print(os.getcwd())  # 打印当前目录,核对文件位置

如果文件不存在,建议添加创建逻辑,避免读取报错:

if not os.path.exists('words.csv'):
    new_data.to_csv('words.csv', index=False)
    return {'status': 'success', 'msg': '文件已创建'}, 200

完整修复后的Upload类代码

class Upload(Resource):
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('text', required=True, location='json')
        print(1)
        args = parser.parse_args()
        print(2)
        new_data = pd.DataFrame({
            'id': random.randint(0,1000),
            'text': args['text']
        })
        print(3)
        
        import os
        if not os.path.exists('words.csv'):
            new_data.to_csv('words.csv', index=False)
            print("文件已创建并写入")
            return {'status': 'success'}, 200
            
        data = pd.read_csv('words.csv')
        data = pd.concat([data, new_data], ignore_index=True)
        print(4)
        data.to_csv('words.csv', index=False)
        return {'status': 'success'}, 200

测试注意事项

  • 发送POST请求时,请求体必须是JSON格式(如{"text": "测试内容"}),同时保持Content-Type: application/json请求头。
  • 在Pydroid控制台查看输出,确认1、2、3、4依次打印,定位是否还有其他阻塞点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:55:12