FastAPI GitHub 指南:如何开始你的第一个项目 – wiki大全

FastAPI GitHub 指南:如何开始你的第一个项目

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.8+ 构建 API。它凭借其出色的性能、易用性和内置的数据验证、序列化以及交互式 API 文档(通过 Swagger UI 和 ReDoc)而迅速受到开发者的青睐。

本指南将详细介绍如何通过 GitHub 开始你的第一个 FastAPI 项目,涵盖从环境设置到部署的基本步骤。

1. 为什么选择 FastAPI?

在深入项目之前,我们先快速回顾一下 FastAPI 的主要优势:

  • 极速: 与 Starlette (Web 部分) 和 Pydantic (数据部分) 构建,拥有非常高的性能,与 NodeJS 和 Go 不相上下。
  • 高开发效率: 自动生成交互式 API 文档,结合类型提示,减少了大量手动编写文档和验证代码的时间。
  • 代码简洁: 现代 Python 语法,代码可读性强,易于维护。
  • 健壮性: 基于 Pydantic 的数据验证,确保输入和输出数据的正确性。
  • 强大的生态: 内置 OAuth2、JWT、WebSocket 支持等。

2. 环境准备

在开始编写代码之前,你需要确保你的开发环境已准备就绪。

2.1 安装 Python

FastAPI 需要 Python 3.8 或更高版本。建议从 Python 官方网站 下载并安装最新版本。安装时请确保勾选“Add Python to PATH”选项。

2.2 创建虚拟环境

为了避免项目之间的依赖冲突,强烈建议为每个项目创建独立的虚拟环境。

“`bash

创建虚拟环境

python -m venv venv

激活虚拟环境

Windows:

.\venv\Scripts\activate

macOS/Linux:

source venv/bin/activate
“`

激活后,你的终端提示符前会显示 (venv),表示你已处于虚拟环境中。

2.3 安装 FastAPI 和 Uvicorn

FastAPI 本身是一个库,它需要一个 ASGI 服务器来运行。Uvicorn 是一个高性能的 ASGI 服务器,通常与 FastAPI 搭配使用。

bash
pip install "fastapi[all]" uvicorn

fastapi[all] 会安装所有可选依赖,包括 Pydantic、Starlette、Uvicorn 等。如果你只需要核心功能,可以只安装 fastapi

3. 创建你的第一个 FastAPI 项目

3.1 项目结构

一个简单的 FastAPI 项目通常包含以下文件:

my-fastapi-app/
├── main.py
├── requirements.txt
└── .gitignore

3.2 编写 main.py

这是你 FastAPI 应用的核心文件。

“`python

my-fastapi-app/main.py

from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)
async def read_root():
return {“message”: “Hello, FastAPI!”}

@app.get(“/items/{item_id}”)
async def read_item(item_id: int, q: str = None):
return {“item_id”: item_id, “q”: q}

if name == “main“:
import uvicorn
uvicorn.run(app, host=”0.0.0.0”, port=8000)
“`

代码解释:

  • from fastapi import FastAPI: 导入 FastAPI 类。
  • app = FastAPI(): 创建 FastAPI 应用实例。
  • @app.get("/"): 这是一个装饰器,将 read_root 函数注册为处理根路径 (/) 的 GET 请求。
  • async def read_root():: 定义一个异步函数,返回一个字典,FastAPI 会自动将其转换为 JSON 响应。
  • @app.get("/items/{item_id}"): 定义另一个路由,接受路径参数 item_id (整数类型) 和查询参数 q (字符串类型,可选)。
  • if __name__ == "__main__":: 确保只有在直接运行 main.py 时才启动 Uvicorn 服务器。

3.3 创建 requirements.txt

记录项目依赖,方便其他人复现环境。

“`

my-fastapi-app/requirements.txt

fastapi==0.109.0 # 请根据你安装的实际版本填写
uvicorn==0.27.0.post1 # 请根据你安装的实际版本填写
pydantic==2.5.3 # 如果你安装了[all],这个也会被包含
starlette==0.35.1 # 如果你安装了[all],这个也会被包含
``
**提示**: 可以使用
pip freeze > requirements.txt` 来自动生成依赖列表。

3.4 创建 .gitignore

防止不必要的文件(如虚拟环境、IDE 配置文件)被提交到 Git 仓库。

“`

my-fastapi-app/.gitignore

Python

pycache/
.pyc
.pyo
.pyd
.Python
env/
venv/
.egg-info/
.pytest_cache/

IDEs

.idea/
.vscode/

OS

.DS_Store
Thumbs.db
“`

4. 运行你的 FastAPI 应用

在项目根目录下(my-fastapi-app/),确保虚拟环境已激活,然后运行:

bash
uvicorn main:app --reload

命令解释:

  • uvicorn: 启动 Uvicorn 服务器。
  • main:app: 指定 main.py 文件中的 app 对象。
  • --reload: 启用热重载。当你修改文件并保存时,服务器会自动重启,方便开发。

现在,打开你的浏览器,访问 http://127.0.0.1:8000/,你将看到 {"message": "Hello, FastAPI!"}

访问交互式 API 文档:
* Swagger UI: http://127.0.0.1:8000/docs
* ReDoc: http://127.0.0.1:8000/redoc

5. 将项目上传到 GitHub

将你的本地项目同步到 GitHub,以便版本控制、协作和部署。

5.1 初始化 Git 仓库

在项目根目录 (my-fastapi-app/) 下执行:

bash
git init

5.2 添加文件到暂存区

bash
git add .

这将添加所有文件(除了 .gitignore 中忽略的)。

5.3 提交更改

bash
git commit -m "Initial commit: First FastAPI project"

5.4 在 GitHub 创建仓库

  1. 登录 GitHub。
  2. 点击右上角的 + 号,选择 “New repository”。
  3. 填写仓库名称 (例如: my-fastapi-app),选择公开或私有,然后点击 “Create repository”。
  4. GitHub 会提供一些命令来关联你的本地仓库和远程仓库。

5.5 关联本地和远程仓库

将 GitHub 提供的命令复制到你的终端并执行(替换为你的仓库 URL):

bash
git remote add origin https://github.com/你的用户名/my-fastapi-app.git
git branch -M main
git push -u origin main

现在,你的第一个 FastAPI 项目已经成功上传到 GitHub!

6. 进阶:模型、数据库和依赖注入

当你熟悉了基本操作后,可以考虑以下进阶主题来构建更复杂的应用:

  • Pydantic 模型: 定义更复杂的数据结构,用于请求体验证和响应序列化。
  • 数据库集成: 使用 SQLAlchemy (ORM) 或 databases (async ORM) 与 PostgreSQL、MySQL 等数据库交互。
  • 依赖注入: FastAPI 强大的依赖注入系统可以帮助你管理数据库连接、身份验证等。
  • 测试: 编写单元测试和集成测试,确保你的 API 功能正确。
  • 部署: 将你的应用部署到 Heroku、Vercel、Docker 或 Kubernetes 等平台。

总结

本指南详细介绍了如何从零开始搭建你的第一个 FastAPI 项目,并将其发布到 GitHub。FastAPI 提供了一种高效、愉悦的方式来构建高性能的 API。通过利用其类型提示、Pydantic 模型和自动文档生成,你可以显著提高开发效率和代码质量。现在,你已经掌握了开始一个 FastAPI 项目的基础,是时候开始构建你的下一个伟大的 API 了!

滚动至顶部