# 在 Deta 上部署 FastAPI 本节介绍如何使用 Deta 免费方案部署 **FastAPI** 应用。🎁 部署操作需要大约 10 分钟。 !!! info "说明" Deta 是 **FastAPI** 的赞助商。 🎉 ## 基础 **FastAPI** 应用 * 创建应用文件夹,例如 `./fastapideta/`,进入文件夹 ### FastAPI 代码 * 创建包含如下代码的 `main.py`: ```Python from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int): return {"item_id": item_id} ``` ### 需求项 在文件夹里新建包含如下内容的 `requirements.txt` 文件: ```text fastapi ``` !!! tip "提示" 在 Deta 上部署时无需安装 Uvicorn,虽然在本地测试应用时需要安装。 ### 文件夹架构 `./fastapideta/` 文件夹中现在有两个文件: ``` . └── main.py └── requirements.txt ``` ## 创建免费 Deta 账号 创建免费的 Deta 账号,只需要电子邮件和密码。 甚至不需要信用卡。 ## 安装 CLI 创建账号后,安装 Deta CLI: === "Linux, macOS"
```console $ curl -fsSL https://get.deta.dev/cli.sh | sh ```
=== "Windows PowerShell"
```console $ iwr https://get.deta.dev/cli.ps1 -useb | iex ```
安装完 CLI 后,打开新的 Terminal,就能检测到刚安装的 CLI。 在新的 Terminal 里,用以下命令确认 CLI 是否正确安装:
```console $ deta --help Deta command line interface for managing deta micros. Complete documentation available at https://docs.deta.sh Usage: deta [flags] deta [command] Available Commands: auth Change auth settings for a deta micro ... ```
!!! tip "提示" 安装 CLI 遇到问题时,请参阅 Deta 官档。 ## 使用 CLI 登录 现在,使用 CLI 登录 Deta:
```console $ deta login Please, log in from the web page. Waiting.. Logged in successfully. ```
这个命令会打开浏览器并自动验证身份。 ## 使用 Deta 部署 接下来,使用 Deta CLI 部署应用:
```console $ deta new Successfully created a new micro // Notice the "endpoint" 🔍 { "name": "fastapideta", "runtime": "python3.7", "endpoint": "https://qltnci.deta.dev", "visor": "enabled", "http_auth": "enabled" } Adding dependencies... ---> 100% Successfully installed fastapi-0.61.1 pydantic-1.7.2 starlette-0.13.6 ```
您会看到如下 JSON 信息: ```JSON hl_lines="4" { "name": "fastapideta", "runtime": "python3.7", "endpoint": "https://qltnci.deta.dev", "visor": "enabled", "http_auth": "enabled" } ``` !!! tip "提示" 您部署时的 `"endpoint"` URL 可能会有所不同。 ## 查看效果 打开浏览器,跳转到 `endpoint` URL。本例中是 `https://qltnci.deta.dev`,但您的链接可能与此不同。 FastAPI 应用会返回如下 JSON 响应: ```JSON { "Hello": "World" } ``` 接下来,跳转到 API 文档 `/docs`,本例中是 `https://qltnci.deta.dev/docs`。 文档显示如下: ## 启用公开访问 默认情况下,Deta 使用您的账号 Cookies 处理身份验证。 应用一切就绪之后,使用如下命令让公众也能看到您的应用:
```console $ deta auth disable Successfully disabled http auth ```
现在,就可以把 URL 分享给大家,他们就能访问您的 API 了。🚀 ## HTTPS 恭喜!您已经在 Deta 上部署了 FastAPI 应用!🎉 🍰 还要注意,Deta 能够正确处理 HTTPS,因此您不必操心 HTTPS,您的客户端肯定能有安全加密的连接。 ✅ 🔒 ## 查看 Visor 从 API 文档(URL 是 `https://gltnci.deta.dev/docs`)发送请求至*路径操作* `/items/{item_id}`。 例如,ID `5`。 现在跳转至 https://web.deta.sh。 左边栏有个 "Micros" 标签,里面是所有的应用。 还有一个 **Details** 和 **Visor** 标签,跳转到 **Visor** 标签。 在这里查看最近发送给应用的请求。 您可以编辑或重新使用这些请求。 ## 更多内容 如果要持久化保存应用数据,可以使用提供了**免费方案**的 Deta Base。 详见 Deta 官档