fastapi入门讲解

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,基于 Python 3.7+ 并使用了类型提示。它结合了 Starlette 的高性能和 Pydantic 的数据验证功能,使得开发 API 变得非常高效和简单。以下是 FastAPI 的入门指南:

1. 安装 FastAPI

首先,你需要安装 FastAPI 和 Uvicorn(一个 ASGI 服务器,用于运行 FastAPI 应用)。

pip install fastapi uvicorn

2. 创建一个简单的 FastAPI 应用

创建一个 Python 文件(例如 main.py),并编写以下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, World!"}

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

3. 运行 FastAPI 应用

使用 Uvicorn 运行你的 FastAPI 应用:

uvicorn main:app --reload
  • main 是你的 Python 文件名(不含 .py 后缀)。
  • app 是你在代码中创建的 FastAPI 实例。
  • --reload 参数会在代码更改时自动重新加载服务器,适合开发环境。

4. 访问 API

打开浏览器或使用工具(如 curl 或 Postman)访问以下 URL:

  • http://127.0.0.1:8000/:返回 {"message": "Hello, World!"}
  • http://127.0.0.1:8000/items/42?q=test:返回 {"item_id": 42, "q": "test"}

5. 自动生成的 API 文档

FastAPI 自动生成交互式 API 文档:

  • Swagger UI:访问 http://127.0.0.1:8000/docs
  • ReDoc:访问 http://127.0.0.1:8000/redoc

这些文档允许你直接在浏览器中测试 API 端点。

6. 使用 Pydantic 进行数据验证

FastAPI 使用 Pydantic 进行数据验证和序列化。以下是一个使用 Pydantic 模型的示例:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

在这个例子中,Item 模型定义了请求体的结构。FastAPI 会自动验证请求数据是否符合模型定义。

7. 处理请求体和路径参数

你可以同时使用路径参数和请求体:

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_id": item_id, **item.dict()}

8. 异步支持

FastAPI 支持异步请求处理。你可以使用 async def 定义异步端点:

@app.get("/async-example")
async def async_example():
    await some_async_function()
    return {"message": "This is an async example"}

9. 依赖注入

FastAPI 提供了强大的依赖注入系统,允许你在端点中注入依赖项:

from fastapi import Depends

def common_parameters(q: str = None, skip: int = 0, limit: int = 100):
    return {"q": q, "skip": skip, "limit": limit}

@app.get("/items/")
def read_items(commons: dict = Depends(common_parameters)):
    return commons

10. 部署

当你准备好部署应用时,可以使用 Uvicorn 或其他 ASGI 服务器(如 Hypercorn)来运行你的 FastAPI 应用。

uvicorn main:app --host 0.0.0.0 --port 80

总结

FastAPI 是一个功能强大且易于使用的框架,适合构建高性能的 API。它结合了类型提示、自动文档生成、数据验证和异步支持,使得开发过程更加高效和愉快。通过以上步骤,你可以快速入门并开始构建自己的 API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大哎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值