【FastAPI】6.依赖注入

依赖注入


from typing import Annotated

from fastapi import FastAPI, Query, Depends

from pydantic import BaseModel

import uvicorn

app = FastAPI()


class User(BaseModel):
    id: int
    name: str
    age: int
    gender: str



def get_current_user() ->User:
    return User(id=0,name="depends_test",age=0,gender= "female")

@app.get("/items")
def get_items(cur_usr:User = Depends(get_current_user)):
    return {"usr_info":cur_usr,"items":["item1","item2","item3","item4"]}


if __name__== "__main__":
    uvicorn.run(app,port=8888)
  • 通过依赖注入功能,FastAPI允许不同的路径操作函数复用代码逻辑
    • 常见的page_numberpage_size这种API参数,可以使用依赖注入功能把它们封装在一个函数中,从而避免在多个操作函数中重复编写相同的逻辑
    • 权限校验函数也可使用依赖注入功能实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值