原始碼: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 許可證條款獲得許可。