本文說明如何在
GitHub Codespaces
環境中一起執行 FastAPI 和 Postgres。 Codespaces 是裝載于雲端的開發環境。 Codespaces 可讓您建立可設定且可重複的開發環境。
您可以在
瀏覽器中
或整合式開發環境中開啟範例存放庫, (IDE) ,例如使用
GitHub Codespaces 擴充
功能
Visual Studio Code
。
您也可以在本機複製範例存放庫,並在Visual Studio Code中開啟專案時,使用
開發容器
執行。 開發容器需要
Docker Desktop
安裝在本機。 如果您尚未安裝 Docker,您仍然可以使用 VS Code 來執行專案,但您使用的是 GitHub Codespaces 作為環境。
使用 GitHub Codespaces 時,請記住,您每月有固定的核心時數。 本教學課程需要少於一個核心小時才能完成。 如需詳細資訊,請參閱
關於 GitHub Codespaces 計費
。
透過本教學課程所示的方法,您可以從範例程式碼開始,並加以修改,以執行 Django 或 Flask 等其他 Python 架構。
在 Codespaces 中啟動開發環境
有許多可能的建立和使用 GitHub Codespaces 的路徑。 本教學課程說明您可以從其中一個路徑開始。
移至範例應用程式存放庫
https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace
。
範例存放庫具有使用 Postgres 資料庫建立具有 FastAPI 應用程式的環境所需的所有設定。 您可以依照
設定 GitHub Codespaces 的 Python 專案
中的步驟建立類似的專案。
選取
[程式碼
]、[
Codespaces]
索引標籤,然後
+
建立新的 Codespace。
當容器完成建置時,請確認您在瀏覽器左下角看到
Codespaces
,以及該範例存放庫已載入。
codespace 金鑰組態檔是
devcontainer.json
、
Dockerfile
和
docker-compose.yml
。 如需詳細資訊,請參閱
GitHub Codespaces 概觀
。
您也可以在 Visual Studio Code 中執行 codespace。 選取瀏覽器左下角的
[Codespaces
],或 (
Ctrl
Shift
Command
+ +
P
P
+ /
Ctrl
+ ) ,然後輸入 「Codespaces」。 然後選取
[在 VS Code 中開啟
]。 此外,如果您停止 codespace 並返回存放庫,然後在 GitHub Codespaces 中再次開啟它,您可以選擇在 VS Code 或瀏覽器中開啟它。
選取
.env.devcontainer
檔案,並使用相同的內容建立名為
.env
的複本。
.env
包含用於程式碼中用來連線到資料庫的環境變數。
如果尚未開啟終端機視窗,請開啟命令選擇區 ()
Ctrl
Shift
Command
+ +
P
P
+ /
Ctrl
+ 開啟一個視窗,輸入 「Terminal: Create New Terminal」,然後選取它來建立新的終端機。
選取終端機視窗中的 [
埠
] 索引標籤,以確認 PostgreSQL 正在埠 5432 上執行。
在終端機視窗中,執行 FastAPI 應用程式。
uvicorn main:app --reload
選取 [ 在瀏覽器中開啟] 通知。
如果您沒有看到或錯過通知,請移至 [埠 ] 並尋找埠 8000 的 [ 本機位址 ]。 使用該處所列的 URL。
在預覽 URL 結尾新增 /docs ,以查看 Swagger UI,這可讓您測試 API 方法。
API 方法是從 FastAPI 從程式碼建立的 OpenAPI 介面產生。
在 [Swagger] 頁面上,執行 POST 方法來新增餐廳。
展開 POST 方法。
選取 [試試看]。
填入要求本文。
"name": "Restaurant 1",
"address": "Restaurant 1 address"
選取 [執行 ] 以認可變更
返回至專案的 GitHub Codespace,選取 SQLTools 擴充功能,然後選取 [要連線的本機資料庫]。
建立容器時,應該安裝 SQLTools 擴充功能。 如果 SQLTools 擴充功能未出現在活動列中,請關閉 codespace 並重新開啟。
展開 [ 本機資料庫] 節點,直到您找到 餐廳 資料表為止,請以滑鼠右鍵按一下 [顯示資料表記錄]。
您應該會看到您新增的餐廳。
若要停止使用 Codespace,請關閉瀏覽器。 (或,如果您以這種方式開啟 VS Code,請關閉它。)
如果您打算再次使用 Codespace,您可以保留它。 只有執行中的 Codespace 會產生 CPU 費用。 停止的程式碼空間只會產生儲存體成本。
如果您想要移除 codespace,請移至 https://github.com/codespaces 以管理您的 Codespace。
開發 Python Web 應用程式
開發容器應用程式
瞭解如何使用適用于 Python 的 Azure 程式庫