FastAPI 运行后显示上个接口内容?

问题描述

在 FastAPI 开发过程中,如果你修改了代码(比如新增或修改了接口),但重新运行 fastapi dev main.py 后发现 仍然显示旧的接口

原因及解决方案

  1. 缓存问题(最常见)

    FastAPI 的开发服务器(uvicorn)有时会缓存旧代码。
    解决方法

    • 强制重启开发服务器
      Ctrl+C 完全终止当前服务,然后重新运行:

      fastapi dev main.py
      
    • 确保终端工作目录正确
      确认你运行的路径和 main.py 所在路径一致(比如在项目根目录下运行)。

  2. 文件未正确保存

    解决方法

    • 检查你的代码文件是否已保存(IDE 如 VS Code 可能需要手动 Ctrl+S)。
    • 在终端运行 lsdir 确认文件内容是最新的。
  3. 浏览器缓存

    即使后端更新了,浏览器可能缓存了旧的 OpenAPI 文档(Swagger UI)。
    解决方法

    • 强制刷新浏览器:Ctrl+F5(清除缓存刷新)。
    • 尝试在无痕模式下访问 http://127.0.0.1:8000/docs
  4. 端口冲突

    旧的服务可能没有完全退出,仍然占用端口。
    解决方法

    • 终止所有 Python 进程:

      pkill -f "uvicorn"  # Linux/Mac
      taskkill /f /im python.exe  # Windows
      
    • 重新启动服务。

  5. 代码未正确加载

    确保你的代码修改已正确应用到 FastAPI 实例。
    示例排查

    • main.py 中添加一个明显的打印语句测试:

      print("服务器已重启!")  # 重启后观察终端是否输出
      
    • 如果没输出,说明修改未生效。

  6. 使用 --reload 确保热重载

    如果直接运行 uvicorn(而非 fastapi dev),需显式启用热重载:

    uvicorn main:app --reload
    

    fastapi dev 默认会启用 --reload,但手动运行时容易遗漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值