当前位置:首页 > 软件 > 正文内容

​​FastAPI 的快速入门指南​​

一往无前4个月前 (07-05)软件202

以下是 FastAPI 的快速入门指南,涵盖从安装到构建第一个API的关键步骤,适合零基础快速上手:


1. 环境准备

# 创建虚拟环境(可选)
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# 安装FastAPI和Uvicorn(ASGI服务器)
pip install fastapi uvicorn

2. 第一个API:Hello World

创建一个文件 main.py

from fastapi import FastAPI

app = FastAPI()  # 创建应用实例

@app.get("/")  # 定义GET路由
async def root():
    return {"message": "Hello World"}

启动服务:

uvicorn main:app --reload
  • main:appmain.py 中的 app 实例

  • --reload:开发时自动重启(生产环境去掉)

访问:

  • API端点:http://127.0.0.1:8000/

  • 交互文档:http://127.0.0.1:8000/docs(自动生成!)


3. 核心功能快速掌握

① 路径参数

@app.get("/items/{item_id}")
async def read_item(item_id: int):  # 自动类型转换
    return {"item_id": item_id}
  • 访问示例:/items/42 → 返回 {"item_id": 42}

  • 无效类型(如字符串/items/foo)会自动返回422错误!

② 查询参数

@app.get("/items/")
async def list_items(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}
  • 访问示例:/items/?skip=20&limit=5

③ 请求体(POST)

使用 Pydantic 模型自动校验数据:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
async def create_item(item: Item):  # 自动解析请求体
    return {"item": item.dict()}
  • 通过 /docs 页面直接测试POST请求!

④ 异步支持

import httpx  # 需要安装 pip install httpx

@app.get("/fetch-data")
async def fetch_external_data():
    async with httpx.AsyncClient() as client:
        response = await client.get("https://api.example.com/data")
    return response.json()

4. 自动API文档

FastAPI自动生成两种文档:

  • Swagger UI/docs(交互式测试)

  • ReDoc/redoc(简洁版文档)

无需手动编写,所有路由、参数和返回值自动展示!


5. 调试技巧

  • 查看请求详情:在函数中添加 print(item) 或日志。

  • 错误处理

    from fastapi import HTTPException
    
    @app.get("/items/{item_id}")
    async def read_item(item_id: int):
        if item_id not in database:
            raise HTTPException(status_code=404, detail="Item not found")
        return {"item": database[item_id]}

6. 项目结构建议(进阶)

my_project/
├── main.py          # 入口文件
├── routers/         # 路由拆分
│   ├── items.py
│   └── users.py
├── models.py        # Pydantic模型
└── database.py      # 数据库连接

main.py 中引入路由:

from routers import items, users
app.include_router(items.router)
app.include_router(users.router)

7. 学习资源推荐


总结

  1. 5分钟启动:安装 → 写路由 → uvicorn 运行。

  2. 核心三板斧:路径参数、查询参数、请求体模型。

  3. 杀手锏功能:自动文档、异步支持、类型安全。

  4. 下一步:尝试连接数据库(如SQLAlchemy或MongoDB)或添加用户认证(OAuth2)。

按照这个流程,半天即可完成基础功能开发!

“​​FastAPI 的快速入门指南​​” 的相关文章

FastAPI 自定义响应模型 + 异常处理器

FastAPI 自定义响应模型 + 异常处理器

在 FastAPI 的最佳实践中,最常用和最推荐的方法是: 🥇 方案1:自定义响应模型 + 异常处理器这是业界标准的做法,原因如下: 完整实现代码from typing import Generic, TypeVar, Any, Optional from pydantic import Ba...

Python提供HTTP文件服务的几种方式

Python提供HTTP文件服务的几种方式

Python提供HTTP文件服务的几种方式Python有多种方式可以用来提供HTTP文件服务,以下是主要的几种方法: 1. 使用内置模块http.server (Python 3)python -m http.server 8000 # 或指定目录 python -m http.server...

一个简单的短链API程序

一个简单的短链API程序

以下是一个使用 FastAPI 和 SQLite 实现的简单短链 API 程序: 🔗 功能说明: 通过 POST 请求访问 /u?url=原网址,可以创建一个短链(如 /u/abc123)。通过 GET 请求访问 /u/短码(如 /u/abc123),可以跳转到原网址。 📦 项目结构(简单...

FastAPI+SQLite实现数据表操作

FastAPI+SQLite实现数据表操作

我将帮你创建一个使用FastAPI和SQLite的数据库服务。以下是完整的实现: 项目结构fastapi_sqlite_app/ ├── main.py ├── database.py ├── models.py ├── schemas.py └── test.db 1. 首先安装...

Windows10使用命令行配置NTP时间服务器和更新时间频率

Windows10使用命令行配置NTP时间服务器和更新时间频率

在 Windows 10 中,你可以使用命令行(cmd)或 PowerShell 来配置 NTP 时间服务器和更新时间频率。以下是具体步骤: 1. 查看当前时间配置在开始修改前,可以先查看当前的时间服务器和同步状态: w32tm /query /status w32tm /query /c...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。