91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

忻城县| 彭山县| 镇坪县| 德格县| 河津市| 根河市| 油尖旺区| 商洛市| 巨野县| 晋宁县| 通江县| 太和县| 漾濞| 镇远县| 吉木乃县| 昭平县| 侯马市| 尼玛县| 明水县| 固始县| 阿勒泰市| 康平县| 绍兴县| 湘乡市| 阿合奇县| 家居| 陈巴尔虎旗| 襄汾县| 东光县| 永吉县| 县级市| 洛浦县| 民勤县| 石家庄市| 晋江市| 建阳市| 台北县| 崇州市| 三明市| 疏勒县| 吉安市|