使用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,用法相同。