
## 安装 FastAPI

使用 pip 安装 FastAPI：

`$ pip install fastapi`

这条命令只安装 FastAPI 核心包。如果你需要一次性安装 FastAPI 及其所有可选依赖，可以使用：

`$ pip install "fastapi[all]"`

`fastapi[all]` 会安装以下组件：

|包名|用途|
|---|---|
| `uvicorn[standard]` |ASGI 服务器，用于运行 FastAPI 应用|
| `python-multipart` |表单数据和文件上传支持|
| `jinja2` |HTML 模板引擎|
| `python-jose[cryptography]` |JWT 令牌支持|
| `passlib[bcrypt]` |密码哈希与加密|
| `python-dotenv` |环境变量管理|

---

## 安装 Uvicorn

FastAPI 是一个 ASGI 框架，需要一个 ASGI 服务器来运行。最常用的是 Uvicorn：

``$ pip install "uvicorn[standard]"``

`[standard]` 会安装 uvloop（高性能事件循环）和 httptools（高性能 HTTP 解析器），显著提升性能。

> ASGI（Asynchronous Server Gateway Interface）是 Python 异步 Web 服务器与应用程序之间的标准接口，是 WSGI 的异步版本。传统框架如 Flask 使用 WSGI（同步），而 FastAPI 使用 ASGI（异步），能够更高效地处理并发请求。

---

## 运行第一个 FastAPI 应用

安装完成后，创建一个名为 main.py 的文件：

```
## 实例

from fastapi import FastAPI  
  
# 创建 FastAPI 应用实例  
app = FastAPI()  
  
# 定义根路径的 GET 路由  
@app.get("/")  
async def root():  
    return {"message": "Hello World"}  
```

在命令行中启动应用：

$ uvicorn main:app --reload

参数说明：

|参数|说明|
|---|---|
| `main:app` | `main` 指文件名 main.py，`app` 指文件中创建的 FastAPI 实例变量名|
| `--reload` |开发模式，代码修改后自动重载服务器（仅用于开发环境）|

启动成功后，终端会显示：

```cmd
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process
INFO:     Started server process
INFO:     Waiting for application startup.
INFO:     Application startup complete.
```

打开浏览器访问 **http://127.0.0.1:8000**，你将看到如下 JSON 响应：

{"message": "Hello World"}

![](https://www.runoob.com/wp-content/uploads/2023/12/a2e311f60bc9dfa46cf6474eaf2f8278.png)

同时，FastAPI 自动生成了交互式 API 文档：

|地址|文档类型|说明|
|---|---|---|
|**http://127.0.0.1:8000/docs**|Swagger UI|可交互测试 API 的文档界面|
|**http://127.0.0.1:8000/redoc**|ReDoc|更注重阅读体验的文档界面|

---

## 使用 FastAPI CLI

FastAPI 新版本提供了 fastapi 命令行工具，可以更方便地运行应用：

# 开发模式（自动重载）
$ fastapi dev

# 生产模式
$ fastapi run

`fastapi dev` 会自动查找项目中的 FastAPI 应用并启动开发服务器，等同于 `uvicorn main:app --reload`。