源代码:https://github.com/fastapi/fastapi-cli
使用 FastAPI CLI 从命令行运行和管理 FastAPI 应用程序。 ?
FastAPI CLI是一个命令行程序fastapi
,可用于为 FastAPI 应用程序提供服务、管理 FastAPI 项目等。
当您安装 FastAPI 时(例如使用pip install "fastapi[standard]"
),它包含一个名为fastapi-cli
的包,该包在终端中提供fastapi
命令。
要运行 FastAPI 应用程序进行开发,您可以使用fastapi dev
命令:
$ fastapi dev main.py
INFO Using path main.py
INFO Resolved absolute path /home/user/code/awesomeapp/main.py
INFO Searching for package file structure from directories with __init__.py files
INFO Importing from /home/user/code/awesomeapp
╭─ Python module file ─╮
│ │
│ ? main.py │
│ │
╰──────────────────────╯
INFO Importing module main
INFO Found importable FastAPI app
╭─ Importable FastAPI app ─╮
│ │
│ from main import app │
│ │
╰──────────────────────────╯
INFO Using import string main:app
╭────────── FastAPI CLI - Development mode ───────────╮
│ │
│ Serving at: http://127.0.0.1:8000 │
│ │
│ API docs: http://127.0.0.1:8000/docs │
│ │
│ Running in development mode, for production use: │
│ │
│ fastapi run │
│ │
╰─────────────────────────────────────────────────────╯
INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [56345] using WatchFiles
INFO: Started server process [56352]
INFO: Waiting for application startup.
INFO: Application startup complete.
名为fastapi
的命令行程序是FastAPI CLI 。
FastAPI CLI 获取 Python 程序的路径,并使用 FastAPI(通常称为app
)自动检测变量以及如何导入它,然后提供它。
对于生产环境,您可以使用fastapi run
来代替。 ?
在内部, FastAPI CLI使用 Uvicorn,这是一种高性能、生产就绪的 ASGI 服务器。 ?
fastapi dev
当您运行fastapi dev
时,它将在开发模式下运行。
默认情况下,它将启用自动重新加载,因此当您更改代码时,它将自动重新加载服务器。这是资源密集型的,并且可能比没有它时不稳定,您应该只将它用于开发。
默认情况下,它将侦听 IP 地址127.0.0.1
,这是您的计算机单独与自身通信的 IP ( localhost
)。
fastapi run
当您运行fastapi run
时,它将默认在生产模式下运行。
默认情况下,它将禁用自动重新加载。
它将监听 IP 地址0.0.0.0
,这意味着所有可用的 IP 地址,这样任何可以与机器通信的人都可以公开访问它。这是您通常在生产中(例如在容器中)运行它的方式。
在大多数情况下,您将(并且应该)有一个“终止代理”为您处理 HTTPS,这取决于您如何部署应用程序,您的提供商可能会为您执行此操作,或者您可能需要自己设置。您可以在 FastAPI 部署文档中了解更多信息。
该项目根据 MIT 许可证条款获得许可。