FastAPI,一个Python高性能Web框架的便捷库!

文摘   2024-11-12 12:56   河南  

FastAPI,快到飞起!Python Web 框架中的超跑,今天带你体验一把速度与激情!

FastAPI,一个用来构建 API 的 Python 库,速度贼快,用起来也贼爽。它基于 Starlette 和 Pydantic,充分利用了 Python 的类型提示,让代码又简洁又高效。

路由,你的API入口

在 FastAPI 里,定义 API 路由就像写 Python 函数一样简单。用 @app.get(“/”) 这样的装饰器,就能把一个函数变成处理 GET 请求的接口。
    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get(“/”)
    def read_root():
        return {“Hello”: “World”}
    
    @app.get(“/items/{item_id}”)
    def read_item(item_id:int):  # 看,类型提示!
        return {“item_id”:item_id}

瞧,多简洁!/ 路径返回个 “Hello World”,/items/{item_id} 还能根据路径参数返回不同数据。

数据校验,稳!

Pydantic 上场!它让数据校验变得异常轻松。定义一个数据模型,FastAPI 就能自动校验请求数据,不符合规则的数据,直接给你 422 错误,省心!
    from fastapi import FastAPI
    from pydantic import BaseModel
    
    app = FastAPI()
    
    class Item(BaseModel):
        name:str
        price: float
        is_offer:bool = None #  默认值可以不传
    
    
    @app.post(“/items/”)
    async def create_item(item:Item): #  直接用模型!
        return item

温馨提示:is_offer 默认值是 None,传不传都行。

异步,快到飞起!

FastAPI 天生支持异步,性能杠杠的!用 async def 定义异步函数,处理并发请求,速度嗖嗖的。
    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get(“/”)
    async def read_root():  #  异步函数!
        return {“Hello”: “World”}

交互文档,自动生成!

Swagger UI 和 ReDoc,FastAPI 直接给你内置了!写完代码,API 文档就有了,方便调试,也方便给别人看。访问 /docs 或者 /redoc 就能看到。

依赖注入,解耦神器!

依赖注入,听起来高大上,其实很简单。它可以把一些公共的逻辑,比如数据库连接、用户认证,抽离出来,让代码更清晰,更易于维护。
    from fastapi import FastAPI, Depends
    from typing import Annotated
    
    app = FastAPI()
    
    def get_db():
        db = ... # 获取数据库连接
        try:
            yield db
        finally:
            db.close()
    
    @app.get(“/items/”)
    async def read_items(db:Annotated[int, Depends(get_db)]):
        data = db.query(...) #  使用数据库连接
        return data

温馨提示:Depends 就是依赖注入的关键!

FastAPI 还有好多好用的功能,比如数据转换、中间件、WebSockets 等等。今天就先带你体验这些核心功能,其他的,你自己慢慢探索吧!

FastAPI,Python Web 框架里的超跑,等你来驾驭!

翔宇风
精彩纷呈,引人入胜。
 最新文章