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

PyCharm运行Flask开发REST API访问localhost返回404错误如何解决

404问题的直接解决方法

你访问的http://127.0.0.1:5000/是服务的根路径,但你的代码仅为/students/路径绑定了请求处理逻辑,没有为根路径配置任何响应规则,所以服务端找不到对应处理逻辑就返回404错误。
直接将访问地址替换为 http://127.0.0.1:5000/students/ 即可正常获取返回的学生数据。


相关问题说明

1. Flask路由匹配规则

  • Flask 服务收到请求后,会将请求路径和你注册的所有路由做完全匹配,只有匹配成功才会执行对应的处理函数
  • 你通过api.add_resource(StudentsList, '/students/')仅注册了/students/路径的处理逻辑,因此访问根路径必然报错
  • 如果你希望根路径也有返回,可以额外添加根路径的处理逻辑,示例代码如下:
@app.route('/')
def index():
    return {"提示": "请访问 /students/ 路径获取学生数据"}

2. 现有代码的隐性bug

你当前写的post请求逻辑存在问题,运行时会抛出变量未定义的错误,需要调整为如下逻辑:

def post(self):
    # 先初始化reqparse解析对象
    parser = reqparse.RequestParser()
    # 定义需要接收的参数,可指定类型、是否必填等规则
    parser.add_argument("name", required=True, help="name参数不能为空")
    parser.add_argument("age", type=int, required=True, help="age必须为整数且不能为空")
    parser.add_argument("spec", required=True, help="spec参数不能为空")
    args = parser.parse_args()
    # 原有后续逻辑保持不变即可
    student_id = int(max(STUDENTS.keys())) + 1
    student_id = '%i' % student_id
    STUDENTS[student_id ] = {
        "name" : args["name"],
        "age" : args["age"],
        "spec" : args["spec"],
    }
    return STUDENTS[student_id], 201

3. localhost运行机制说明

  • localhost是指向本地设备的默认域名,对应固定IP127.0.0.1,Flask启动时默认监听本地的5000端口,所以你访问127.0.0.1:5000就是向你当前电脑上运行的Flask服务发送请求
  • 无需额外特殊配置,只要服务正常启动,访问对应匹配的路径即可得到响应,你可以用Postman、Apifox等工具测试接口,也可以直接用curl命令测试,示例:
    • 发起GET请求获取学生列表:curl http://127.0.0.1:5000/students/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:06:02