Skip to content

框架 - FastAPI(目前最火)

异步高性能框架(高并发、IO 密集、微服务)

FastAPI 特点:`现代、异步、高性能、类型提示

✅ 优点

  • 天然支持 async/await,IO 密集场景并发极强
  • 自动生成 Swagger / ReDoc 接口文档,前后端协作神器
  • 支持 Python 类型注解,代码可读性、健壮性高
  • 性能接近 Go/Node,开发效率极高
  • 适合微服务、AI 接口、高并发 API、中台服务

❌ 缺点

  • 全栈能力弱,需要自行搭配数据库、定时任务等
  • 大型复杂传统业务项目生态不如 Django

fastapi自定义端口时还能用fastapi dev运行吗?

‌可以‌,在 FastAPI 中自定义端口时‌仍然可以使用 fastapi dev 命令运行‌,但需要通过命令行参数显式指定端口。

使用 fastapi dev 自定义端口的方法

  • ‌默认行为‌:fastapi dev 启动时默认使用 ‌8000 端口‌ ‌
  • ‌自定义端口‌:在终端中运行以下命令即可指定其他端口(例如 8001): fastapi dev main:app --port 8001

✅ 这会: 保持 fastapi dev 的开发模式特性(如自动重载) 在指定端口(如 8001)上启动服务 仍可访问交互式文档:http://127.0.0.1:8001/docs

注意事项

  • 确保 main.py 文件中定义了 FastAPI 实例变量(通常命名为 app)‌
  • 若在代码中硬编码了 uvicorn.run(app, port=...),则命令行 --port 参数‌可能被覆盖‌,建议开发阶段避免在代码中直接调用 uvicorn.run(),以保持灵活性 ‌
    uvicorn.run(
        "main:app",  # 模块名:对象名
        host="0.0.0.0", # 允许外部设备访问
        port=8088,   # 显式指定端口
        reload=True  # 开发模式
    )
  • 若需开放外部访问(如局域网设备访问),可同时指定 --host 0.0.0.0: fastapi dev main:app --host 0.0.0.0 --port 8001

检查端口占用: Linux/Mac:lsof -i :8000

总结: 方式 是否支持自定义端口 是否保留自动重载 fastapi dev --port <端口> ✅ 支持 ✅ 保留 在代码中调用 uvicorn.run(..., port=...) ✅ 支持 ⚠️ 可能冲突(不推荐) 推荐优先使用 fastapi dev --port <端口> 方式,兼顾便捷性与开发体验。

创作不易请尊重他人劳动成果,未经授权禁止转载!
Released under the MIT License.