运行Flask应用时使用Postman测试POST接口返回404 Not Found错误
Flask 1.1.2 接口404报错排查步骤
第一步:核对基础请求配置的匹配性
- 端口匹配校验:代码中当前注释了
port=8000的自定义启动配置,Flask 1.1.2版本默认启动端口为5000,需检查Postman中填写的请求地址是否错用了8000端口 - 路径匹配校验:逐字符对比Postman填写的接口路径和代码中定义的
/postmanpost,排除大小写不一致、多/少写斜杠、拼写错误这类不匹配问题 - 请求方法匹配校验:该路由仅注册了
POST方法,需确认Postman选择的请求方法不是GET/PUT等其他方法,方法不匹配时同样会触发404
第二步:校验服务实际加载的路由列表
- 因代码中开启了
debug=True,Flask启动时会在PyCharm终端打印所有已注册的路由信息,找到日志中包含/postmanpost的条目,确认路由是否正常注册、绑定的请求方法是否和预期一致 - 如果启动日志中完全找不到对应路由,需检查是否存在旧的Flask进程占用5000端口,修改后的代码实际未生效启动
第三步:排除代码层的隐藏问题
- 现有代码逻辑存在漏洞:当请求不满足POST条件时
result变量未定义,虽会触发500错误而非404,但建议将返回结果的逻辑挪到POST判断分支内,避免运行异常 - 检查是否存在路由重复注册、Flask实例初始化混淆的问题,导致目标路由实际注册到了其他未运行的app实例上
第四步:交叉验证测试链路
- 排除Postman本身配置问题,可直接在PyCharm终端运行如下命令测试接口:
curl -X POST http://127.0.0.1:5000/postmanpost -H "Content-Type: application/json" -d '{"operation":"add","num1":1,"num2":2}'
- 如果curl测试返回正常计算结果,说明问题出在Postman的地址、方法、请求头配置上;如果curl同样返回404,回到前两步核对终端实际启动的路由信息即可。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

