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 框架里的超跑,等你来驾驭!