FastAPI 学习之路(四)使用pydantic模型做请求体
FastAPI 学习之路(十三)Cookie 参数,Header参数
前言
我们之前分享请求体去更新数据。这次我们去分享依赖项
正文
FastAPI 提供了简单易用,但功能强大的依赖注入系统。这个依赖系统设计的简单易用,可以让开发人员轻松地把组件集成至 FastAPI。
声明代码(本文中为路径操作函数 )运行所需的,或要使用的「依赖」的一种方式。
然后,由系统(本文中为 FastAPI)负责执行任意需要的逻辑,为代码提供这些依赖(注入依赖项)。
依赖注入常用于以下场景:
上述场景均可以使用依赖注入,将代码重复最小化。
接下来,我们学习一个非常简单的例子,尽管它过于简单,不是很实用。
from typing import Optional
from fastapi import Depends, FastAPI
app = FastAPI()
def common_parameters(q: Optional[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
@app.get("/users/")
def read_users(commons: dict = Depends(common_parameters)):
return commons
我们看下最后的请求
依赖项函数的形式和结构与路径操作函数一样。
因此,可以把依赖项当作没有「装饰器」(即,没有 @app.get("/path")
)的路径操作函数。
依赖项可以返回各种内容。
本例中的依赖项预期接收如下参数:
str
的可选查询参数 q
int
的可选查询参数 skip
,默认值是 0
int
的可选查询参数 limit
,默认值是 100
然后,依赖项函数返回包含这些值的 dict
。
接收到新的请求时,FastAPI 执行如下操作:
依赖注入系统如此简洁的特性,让 FastAPI 可以与下列系统兼容:
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~