Python-FastAPI框架使用介绍

FastAPI是一个现代的、快速(高性能)的Web框架,用于构建APIs,特别是与Python 3.6+版本兼容的异步编程。它具有以下几个特点:

  • 高性能:基于Starlette框架,FastAPI能够处理大量请求,适合构建高并发应用。
  • 自动生成文档:使用OpenAPI标准,FastAPI可以自动生成API文档,支持Swagger UI和ReDoc。
  • 类型检查:支持Python类型提示,能够在运行时验证请求数据的类型。
  • 易于学习:使用简单直观,适合新手快速上手。

一、环境安装

首先,需要安装FastAPI和一个ASGI服务器(如uvicorn)来运行你的应用。

pip install fastapi uvicorn

二、基本用法

以下是一个简单的FastAPI应用的示例:

2.1 创建应用

创建一个Python文件main.py,并添加以下内容:

from fastapi import FastAPI

app = FastAPI()

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

2.2 运行应用

使用uvicorn运行应用:

uvicorn main:app --reload
  • main是你的Python文件名(去掉.py后缀)。
  • app是FastAPI实例的名称。
  • --reload使得代码更改后自动重载,非常适合开发阶段使用。

2.3 访问API

打开浏览器并访问 http://127.0.0.1:8000/,你应该能够看到以下JSON响应:

{"message": "Hello, World!"}

2.4 自动生成文档

FastAPI会自动生成API文档,你可以访问以下地址:

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

三、请求参数与数据验证

FastAPI支持多种请求参数类型,包括路径参数、查询参数和请求体。下面是一些示例。

3.1 路径参数

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

访问 http://127.0.0.1:8000/items/5,返回:

{"item_id": 5}

3.2 查询参数

@app.get("/items/")
async def read_items(q: str = None):
    return {"q": q}

访问 http://127.0.0.1:8000/items/?q=fastapi,返回:

{"q": "fastapi"}

3.3 请求体

使用Pydantic模型来验证请求体:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None

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

你可以发送一个POST请求到 http://127.0.0.1:8000/items/,请求体示例:

{
    "name": "Item Name",
    "price": 99.99,
    "is_offer": true
}

返回结果将是:

{
    "name": "Item Name",
    "price": 99.99,
    "is_offer": true
}

四、处理异常

FastAPI允许自定义异常处理,以下是一个简单的示例:

from fastapi import HTTPException

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    if item_id < 0:
        raise HTTPException(status_code=400, detail="Item ID must be positive")
    return {"item_id": item_id}

如果传递负值,将返回400错误:

{
    "detail": "Item ID must be positive"
}

五、中间件

FastAPI支持中间件,可以用来处理请求和响应。在应用中添加中间件示例:

from fastapi.middleware.cors import CORSMiddleware

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # 允许所有源
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

六、总结

FastAPI是一个强大且易用的Web框架,非常适合构建API和异步应用。通过自动生成文档、数据验证和高性能等特性,它能够帮助开发者快速构建高质量的Web应用。希望通过本文的介绍,你能对FastAPI有一个初步的了解,并能在实际项目中应用。

如果你对FastAPI感兴趣,可以查看官方文档获取更多详细信息和高级用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只蜗牛儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值