Fastapi教程:快速入门用 FastAPI 构建你的第一个 API

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

FastAPI 是一个现代、高性能的 Python Web 框架,专为构建 RESTful API 而设计。如果你正在寻找一种高效且开发友好的方式来创建 API,那么 FastAPI 将是一个极佳的选择。本教程将通过简单示例,带你快速了解如何使用 FastAPI 创建和运行应用。


环境准备

在开始之前,确保你的开发环境满足以下要求:

  1. Python 版本:推荐 Python 3.7 及以上。

  2. 安装依赖:使用以下命令安装 FastAPI 和 uvicorn(ASGI 服务器):

    pip install fastapi uvicorn
    

编写第一个 FastAPI 应用

创建一个名为 main.py 的文件,编写以下代码:

import uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Welcome to FastAPI!"}

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

if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000)

示例说明

  1. 路由定义

    • /:返回一个简单的欢迎信息。
    • /items/{item_id}:根据路径参数 item_id 和可选查询参数 q 返回相关数据。
  2. ASGI 应用启动
    使用 uvicorn.run 启动服务,指定主机地址和端口。


运行应用

运行以下命令启动应用:

python main.py

测试 API

  1. 打开浏览器访问 http://127.0.0.1:8000/,返回 JSON 数据:

    {
        "message": "Welcome to FastAPI!"
    }
    
  2. 测试路径参数和查询参数:
    访问 http://127.0.0.1:8000/items/42?q=example,返回:

    {
        "item_id": 42,
        "q": "example"
    }
    

添加异步支持

FastAPI 原生支持异步编程,以下是异步版代码示例:

import uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Welcome to FastAPI!"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    if q:
        await simulate_async_task()
    return {"item_id": item_id, "q": q}

async def simulate_async_task():
    import asyncio
    await asyncio.sleep(1)  # 模拟异步任务耗时

if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000)

异步代码特点

  1. 使用 async def 定义异步视图函数,提升性能。
  2. 通过 await 调用耗时任务(如数据库查询、外部 API 请求)。

内置文档系统

FastAPI 提供了自动生成的交互式 API 文档,基于 OpenAPI 标准。

这些文档帮助你快速测试和分享 API,无需额外配置。


异步和同步对比

功能同步异步
编写风格标准函数使用 asyncawait 定义异步函数
适用场景CPU 密集型任务I/O 密集型任务(数据库、文件操作、外部 API)
性能受限于同步阻塞操作更高效,释放线程资源,支持高并发

运行效果

  1. 启动服务后,访问根路径 http://127.0.0.1:8000/
  2. 测试异步任务时,带查询参数的路径会有 1 秒延迟模拟异步操作。

总结

通过本教程,我们完成了以下内容:

  • 使用 FastAPI 创建基本 API 服务。
  • 运行和测试同步与异步 API。
  • 了解 FastAPI 提供的自动文档和异步支持。

FastAPI 优势

  1. 高性能:基于 Starlette 和 Pydantic。
  2. 友好开发体验:自动数据验证、类型检查和文档生成。
  3. 现代工具链:支持异步、类型提示,符合 Python 3.6+ 标准。

接下来,你可以尝试扩展示例:

  • 添加更多复杂的路由。
  • 集成数据库(如 SQLModel、Tortoise-ORM)。
  • 构建完整的微服务或 Web 应用。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值