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

POST请求调用时函数报错,求解决:TypeError及无效响应问题

解决Flask 404错误处理函数的TypeError问题

问题分析

你遇到的TypeError: showMessage() 应接收0至1个位置参数,但传入了2个错误,通常是因为错误处理函数的参数定义与Flask的调用逻辑不匹配,或者函数被错误当作普通视图函数注册。后续的返回类型错误是TypeError引发的连锁问题。

修复步骤

1. 修正错误处理函数的参数定义

Flask调用404错误处理函数时,会主动传入一个异常对象,因此函数需要接收必填的error参数,而非可选参数。修改后的代码如下:

from flask import request, jsonify

@app.errorhandler(404)
def showMessage(error):  # 移除参数默认值,确保必填
    message = {
        "status": "404",
        "message": f"Record not found: {request.url}"
    }
    response = jsonify(message)
    response.status_code = 404
    return response

2. 检查函数注册方式

确保showMessage仅通过@app.errorhandler(404)注册为错误处理函数,不要用@app.route将其作为普通视图函数注册。重复注册会导致Flask处理路由请求时传入额外参数,触发TypeError。

3. 验证依赖导入

确认已正确导入所需Flask模块:

from flask import Flask, request, jsonify

缺少request或jsonify会引发其他异常,间接导致返回类型错误。

验证修复

启动Flask应用后,发送POST请求到不存在的接口,此时404错误处理函数应正常返回JSON格式的错误响应,不再抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:01:03