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

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

一往无前2个月前 (07-05)软件139

以下是 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://www.rrjj.xyz/?id=4

分享给朋友:

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

SmsForwarder v3.3.3 免费开源4周年纪念版

SmsForwarder v3.3.3 免费开源4周年纪念版

SmsForwarder-短信转发器 短信转发器——不仅只转发短信,备用机必备神器! 监控Android手机短信、来电、APP通知,并根据指定规则转发到其他手机:钉钉群自定义机器人、钉钉企业内机器人、企业微信群机器人、企业微信应用消息、飞书群机器人、飞书企业应用、邮箱、bark、webhoo...

【不忘初心】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...

一个简单的短链API程序

一个简单的短链API程序

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

cURL 命令详解

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

shutdown.exe 强制重启

shutdown.exe 强制重启

在 Windows 系统中,你可以使用 shutdown.exe 命令来强制重启计算机。如果你想立即强制重启(不等待程序正常关闭,直接重启),可以使用以下命令: shutdown.exe /r /f /t 0 参数解释: • /r :表示 重启(restart) 计算机。 • /f :表...

值得推荐的 Windows 版运维面板

值得推荐的 Windows 版运维面板

除了宝塔面板外,还有云帮手、护卫神、UPUPW绿色服务器平台等多款值得推荐的Windows版运维面板,以下是具体介绍: 云帮手:全面兼容所有云服务商,同时兼容Windows、CentOS、Ubuntu等多种云服务器操作系统。它自带远程连接功能,无需额外工具即可进行远程桌面控制,安装和添加服务器...

发表评论

访客

看不清,换一张

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