當前位置:成語大全網 - 書法字典 - FastAPI官方文件解讀(2)

FastAPI官方文件解讀(2)

正如我們之前提到的,Query和Path可以驗證字段並限制值的長度和範圍。主體中的JSON字段具有相同的驗證,但是它需要在模型中聲明,而不是在參數中聲明。

使用Field()可以很好的滿足我們的需求。

標簽:List = []表示普通列表驗證。如果我們想要壹個統壹的類型(比如數組),可以用typing的list來表示,比如tags: List[str] = []。

妳說妳要求數據不重復,那妳也可以試試set,用type中的Set來表示標簽:Set[str] = set()。

也可以使用模型作為另壹個模型中的字段類型。而且這個也會很常見。

Pydantic提供了壹些定義好的特殊類型,方便驗證各種內容。

UrlStr是壹個預置類型,可以驗證合法的URL。

如果希望JSON在主體中,最外層是壹個列表。然後,您需要在參數中定義類型,如下所示。

除了模型之外,還可以使用dict來接收正文。

字典可以接收這種形式的類型註釋。當然,JSON不支持int類型的鍵,所以不用擔心,fastapi會自動轉換。

Defread _ items (*,ads _ ID: str = Cookie (none)):可以通過這樣聲明來獲取Cookie參數。第壹個值是默認值。

Defread _ items (*,user _ agent: str = Header (none)):可以接收頭中的參數。如果頭中的壹個字段有多個值,可以使用defread _ items(x _ token:list[str]= Header(none)):這個形式。

這部分請看前面對fastapi源代碼的解讀。

Pydantic的模型提供了。dict()方法,可以將字段導出為字典。這樣就實現了模型之間的轉換。例如:

這兩個模型之間的唯壹區別是密碼,UserIn的定義需要以下形式。

而使用dict()的UserOut導出可能是以下形式。

我們只需要user _ in = user in (* * user _ out.dict(),password = "secret ")就可以達到效果。

反之,UserIn的dict中多余的參數會被UserOut忽略。

Union[PlaneItem,CarItem]給了response更多的選擇。像response_model=List[Item]這樣的東西也是允許的。

=表單(...),繼承自Body,用法相同。