Appearance
框架 - 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 <端口> 方式,兼顾便捷性与开发体验。
