1、… 这种用法:它是一个特殊的单独值,它是 Python 的一部分并且被称为「省略号」
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(q: str = Query(..., min_length=3)):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
2、传递 * 作为函数的第一个参数。
Python 不会对该 * 做任何事情,但是它将知道之后的所有参数都应作为关键字参数(键值对)
3、关于 **user_in.dict()
Pydantic 的 .dict()
Pydantic 模型具有 .dict() 方法,该方法返回一个拥有模型数据的 dict
如果我们将 user_dict 这样的 dict 以 **user_dict 形式传递给一个函数(或类),Python将对其进行「解包」。它会将 user_dict 的键和值作为关键字参数直接传递。
1)user_in 是一个 UserIn 类的 Pydantic 模型.
2)user_in.dict() 是一个字典
3)**user_in.dict()对第二步的字典进行解包,类似**kwargs