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

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

一往无前2周前 (07-05)软件41

以下是 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)。

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

扫描二维码推送至手机访问。

版权声明:本文由一往无前发布,如需转载请注明出处。

本文链接:https://rrjj.xyz/?id=4

分享给朋友:

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

cURL 命令详解

curl -C - -# -o 是 cURL 命令中多个选项的组合,每个选项的功能如下: ˂a name="1. -C -:断点续传" class="reference-link" href="#"˃1. -C -:断点续传 作用:如果文件下载中断,-C - 会让 cURL 自动检测已下载的部分...

在Python Web开发中,Flask和FastAPI都是优秀的选择

在Python Web开发中,Flask和FastAPI都是优秀的选择,但它们的设计理念、适用场景和未来趋势有所不同。以下是详细对比分析和建议:1. 核心特性对比特性FlaskFastAPI诞生时间2010年(成熟稳定)2018年(现代框架)定位微型框架,高度灵活异步优先,高性能API框架学习曲线简...

基于 ​​FastAPI 多应用模块化​​ 的最佳实践实现

以下是基于 FastAPI 多应用模块化 的最佳实践实现,包含子应用路由、静态文件、模板渲染等功能,并保持项目结构清晰:项目结构project/ ├── apps/          &n...

【不忘初心】Windows11 24H2 (26100.4652) X64 无更新[纯净精简版][2.38G](2025.7.11)

【不忘初心】Windows11 24H2 (26100.4652) X64 无更新[纯净精简版][2.38G] (2025.7.11) 集成运行库、修复DirectX 文章来源:https://www.pc528.net/26100w.html...

欢迎使用Z-BlogPHP!

欢迎使用Z-Blog,这是程序自动生成的文章,您可以删除或是编辑它:)系统生成了一个留言本和一篇《欢迎使用Z-BlogPHP!》,祝您使用愉快!...