0%

FastAPI自学教程(77) - FastAPI CLI 详解

1.基础用法

1
2
3
4
5
6
7
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
return {"Hello": "World"}
  • 通过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. 部署优化
    1
    gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
    • 结合Gunicorn作为进程管理器处理高并发
  2. 安全增强
    • 通过Nginx反向代理配置HTTPS
    • 限制/openapi.json端点访问权限
  3. 监控策略
    • 集成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