本文介绍如何在 GitHub Codespaces 环境中一起运行 FastAPI 和 Postgres。 Codespaces 是一种云托管的开发环境,可用于创建可配置且可重复的开发环境。
可以使用 GitHub Codespaces 扩展在浏览器中或集成开发环境(IDE)(如 Visual Studio Code)中打开示例存储库。
或者,可以在本地克隆示例存储库。 在 Visual Studio Code 中打开项目时,可以使用开发容器通过 开发容器运行该项目。 开发容器要求在本地安装 Docker Desktop 。 如果未安装 Docker,则可以使用 GitHub Codespaces 作为开发环境运行项目。
使用 GitHub Codespaces 时,请记住每月都有固定数量的免费核心小时数。 完成本教程需要不到一小时的核心小时数。 有关详细信息,请参阅 关于 GitHub Codespaces 的计费。
还可以将此设置用作起点,并修改示例以运行其他 Python Web 框架,例如 Django 或 Flask。
在 Codespaces 中启动开发环境
本教程介绍了创建和使用 GitHub Codespaces 的多种可能方法之一。
转到示例应用存储库 https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace。
示例存储库具有使用 Postgres 数据库创建具有 FastAPI 应用的环境所需的所有配置。 可以按照为 GitHub Codespaces 设置 Python 项目中的步骤创建类似的项目。
选择代码选项卡,代码空间选项卡,然后+创建新的代码空间。
容器生成完成后,确认在浏览器左下角看到 Codespaces ,并查看示例存储库。
代码空间密钥配置文件 devcontainer.json、 Dockerfile 和 docker-compose.yml。 有关详细信息,请参阅 GitHub Codespaces 概述。
小窍门
还可以在 Visual Studio Code 中运行 codespace。 选择浏览器左下角的 Codespaces 或 (
Ctrl
+Shift
+P
/Ctrl
+Command
+P
),然后键入“Codespaces”。 然后在 VS Code 中选择“打开”。 此外,如果停止代码空间并返回到存储库并在 GitHub Codespaces 中再次打开它,则可以选择在 VS Code 或浏览器中打开它。选择 .env.devcontainer 文件,并创建一个名为 .env 的副本,其中包含相同的内容。
.env 包含代码中用于连接到数据库的环境变量。
如果终端窗口尚未打开,请打开命令面板(
Ctrl
+Shift
+P
/Ctrl
+Command
+P
),键入“终端:创建新终端”,然后选择它以创建新终端。选择终端窗口中的“ 端口 ”选项卡,确认 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,请关闭浏览器。 (或者,如果通过这种方法打开了 VS Code,请关闭它。)
如果计划再次使用 codespace,可以保留它。 只有运行的 codespace 才会产生 CPU 费用。 停止的 codespace 仅产生存储成本。
如果要删除代码空间,请转到 https://github.com/codespaces 管理代码空间。