1.基础用法
1 | from fastapi import FastAPI |
- 通过
fastapi dev main.py启动开发服务器,自动检测应用实例并启用热重载 - 使用
fastapi run main.py启动生产服务器,禁用热重载并监听所有IP地址 - 处理流程:
graph TD A[输入命令] --> B{模式判断} B -->|dev| C[开发模式] B -->|run| D[生产模式] C --> E[自动重载] C --> F[监听127.0.0.1] D --> G[禁用重载] D --> H[监听0.0.0.0]
2.核心特性
2.1 智能路径识别
1 | fastapi dev ./src/main.py |
- 自动解析项目目录结构,识别包含
__init__.py的Python包 - 动态导入应用实例(默认查找
app = FastAPI()对象)
2.2 集成Uvicorn服务器
- 底层使用ASGI服务器Uvicorn,支持HTTP/1.1和WebSocket
- 开发模式参数:
--reload --host 127.0.0.1 --port 8000 - 生产模式参数:
--host 0.0.0.0 --port 80
3.生产环境建议
- 部署优化:
1
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
- 结合Gunicorn作为进程管理器处理高并发
- 安全增强:
- 通过Nginx反向代理配置HTTPS
- 限制
/openapi.json端点访问权限
- 监控策略:
- 集成Prometheus监控请求指标
- 日志分级管理(
--log-level warning)
测试命令示例:
1
2
3
4
5 # 开发模式
fastapi dev main.py --port 8080
# 生产模式
fastapi run main.py --host 0.0.0.0 --port 80