中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中fastapi怎么設置查詢參數可選或必選

發布時間:2022-06-06 09:29:25 來源:億速云 閱讀:265 作者:iii 欄目:開發技術

本篇內容主要講解“python中fastapi怎么設置查詢參數可選或必選”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python中fastapi怎么設置查詢參數可選或必選”吧!

前言:

在fastapi中,我們定義的查詢參數是可以設置成:必選參數 or 可選參數。

可選查詢參數

  • z只要給查詢參數的默認值設置為None,表示該查詢參數是可選參數。

 from fastapi import FastAPI
 
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_item(item_id: str, q=None):
     data = {"item_id": item_id}
     if q:
         data["q"] = q
     return data

補充:此時路徑操作函數內的參數有兩個,一個是路徑參數item_id,一個是查詢參數q,fastapi是可以區分他們的。

必選查詢參數

  • 當你為查詢參數設置默認值時,則該參數在URL中不是必須的。

  • 如果你不想添加默認值,而只是想使該參數成為可選的,則將默認值設置為 None

  • 但當你想讓一個查詢參數成為必需的,不聲明任何默認值就可以.

  • 比如:這里的查詢參數 needy 是類型為 str 的必需查詢參數。

 from fastapi import FastAPI
 
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_user_item(item_id: str, needy: str):
     item = {"item_id": item_id, "needy": needy}
     return item
  • 如果在URL中沒有查詢參數needy,則報錯

 {
     "detail": [
         {
             "loc": [
                 "query",
                 "needy"
             ],
             "msg": "field required",
             "type": "value_error.missing"
         }
     ]
 }

可選和必選參數共存

  • 也可以定義一些參數為必需的,一些具有默認值,而某些則完全是可選的

  • 此時:itme_id是路徑參數,needy是必選路徑參數,skip是有默認值必選查詢參數,limit是可選查詢參數。

 from fastapi import FastAPI
 
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_user_item(
     item_id: str, needy: str, skip: int = 0, limit=None
 ):
     item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}
     return item

為可選參數做類型提示

  • 比如一個可選的參數q,如有該參數時,他的類型是整型,此時定義類型提示如下

  • 使用typing模塊下的Union做類型提示,Union[int, None]表示類型是int或者None

  • 此時對于URL:http://127.0.0.1:8000/items/12?q=12,參數q就會自動轉化為數字12

 from typing import Union
 from fastapi import FastAPI
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_item(item_id: str, q: Union[int, None] = None):
     data = {"item_id": item_id}
     if q:
         data["q"] = q
     return data

補充1:

  • 可能為空的情況做類型提示,一般使用一個比typing.Union更加方便的類型:typing.Optional

  • 因為,Optional[X] is equivalent to Union[X, None]

  • 所以,上面的類似等價于q: Optional[int] = None\

補充2:

  • 只要給查詢參數默認值None就表示它是可選查詢參數,和類型提示無關。

  • 類型提示的功能在于如果該值存在是他應該是什么類型的變量并做類型轉換和校驗。

到此,相信大家對“python中fastapi怎么設置查詢參數可選或必選”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赣榆县| 江口县| 河间市| 沈阳市| 卢龙县| 灌南县| 鲁山县| 保亭| 苍南县| 双辽市| 闵行区| 普兰县| 山东省| 礼泉县| 正镶白旗| 大石桥市| 新民市| 泗水县| 岑溪市| 什邡市| 读书| 永春县| 霍邱县| 浠水县| 田阳县| 诏安县| 偏关县| 沽源县| 玉门市| 陆丰市| 临沭县| 宁晋县| 岑溪市| 襄垣县| 东兰县| 伊金霍洛旗| 平江县| 沙湾县| 招远市| 开阳县| 扎赉特旗|