最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中fastapi設(shè)置查詢參數(shù)可選或必選

 更新時間:2022年06月06日 08:44:17   作者:??小飛牛????  
這篇文章主要介紹了python中fastapi設(shè)置查詢參數(shù)可選或必選,文圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值需要的小伙伴可以參考一下

前言:

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

可選查詢參數(shù)

  • 只要給查詢參數(shù)的默認(rèn)值設(shè)置為None,表示該查詢參數(shù)是可選參數(shù)。
?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

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

必選查詢參數(shù)

  • 當(dāng)你為查詢參數(shù)設(shè)置默認(rèn)值時,則該參數(shù)在URL中不是必須的。
  • 如果你不想添加默認(rèn)值,而只是想使該參數(shù)成為可選的,則將默認(rèn)值設(shè)置為 None。
  • 但當(dāng)你想讓一個查詢參數(shù)成為必需的,不聲明任何默認(rèn)值就可以.
  • 比如:這里的查詢參數(shù) needy 是類型為 str 的必需查詢參數(shù)。
?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中沒有查詢參數(shù)needy,則報錯
?{
? ?  "detail": [
? ? ? ?  {
? ? ? ? ? ?  "loc": [
? ? ? ? ? ? ? ?  "query",
? ? ? ? ? ? ? ?  "needy"
? ? ? ? ? ?  ],
? ? ? ? ? ?  "msg": "field required",
? ? ? ? ? ?  "type": "value_error.missing"
? ? ? ?  }
? ?  ]
?}

可選和必選參數(shù)共存

  • 也可以定義一些參數(shù)為必需的,一些具有默認(rèn)值,而某些則完全是可選的
  • 此時:itme_id是路徑參數(shù),needy是必選路徑參數(shù),skip是有默認(rèn)值必選查詢參數(shù),limit是可選查詢參數(shù)。
?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

為可選參數(shù)做類型提示

  • 比如一個可選的參數(shù)q,如有該參數(shù)時,他的類型是整型,此時定義類型提示如下
  • 使用typing模塊下的Union做類型提示,Union[int, None]表示類型是int或者None
  • 此時對于URL:http://127.0.0.1:8000/items/12?q=12,參數(shù)q就會自動轉(zhuǎn)化為數(shù)字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:

  • 只要給查詢參數(shù)默認(rèn)值None就表示它是可選查詢參數(shù),和類型提示無關(guān)。
  • 類型提示的功能在于如果該值存在是他應(yīng)該是什么類型的變量并做類型轉(zhuǎn)換和校驗。

到此這篇關(guān)于python中fastapi設(shè)置查詢參數(shù)可選或必選的文章就介紹到這了,更多相關(guān)python fastapi 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)一個服務(wù)器監(jiān)聽多個客戶端請求

    Python實現(xiàn)一個服務(wù)器監(jiān)聽多個客戶端請求

    這篇文章主要為大家詳細(xì)介紹了Python如何實現(xiàn)一個服務(wù)器監(jiān)聽多個客戶端請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python jieba庫分詞模式實例用法

    Python jieba庫分詞模式實例用法

    在本篇文章里小編給大家分享的是一篇關(guān)于Python jieba庫分詞模式實例用法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01
  • Python爬蟲beautifulsoup4常用的解析方法總結(jié)

    Python爬蟲beautifulsoup4常用的解析方法總結(jié)

    今天小編就為大家分享一篇關(guān)于Python爬蟲beautifulsoup4常用的解析方法總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • linux環(huán)境中沒有網(wǎng)絡(luò)怎么下載python

    linux環(huán)境中沒有網(wǎng)絡(luò)怎么下載python

    在本篇文章里小編給大家分享了關(guān)于linux環(huán)境中沒有網(wǎng)絡(luò)怎么下載python的相關(guān)知識點內(nèi)容,需要的朋友們參考下。
    2019-07-07
  • 對pytorch網(wǎng)絡(luò)層結(jié)構(gòu)的數(shù)組化詳解

    對pytorch網(wǎng)絡(luò)層結(jié)構(gòu)的數(shù)組化詳解

    今天小編就為大家分享一篇對pytorch網(wǎng)絡(luò)層結(jié)構(gòu)的數(shù)組化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 總結(jié)幾個非常實用的Python庫

    總結(jié)幾個非常實用的Python庫

    Python一直被自稱“batteries included”,就是因為內(nèi)置了許多非常有用的模塊,無需額外安裝和配置,即可直接使用. 除了內(nèi)建的模塊外,Python還有大量的第三方模塊,直接使用pip安裝即可使用.下面給大家簡單介紹幾個Python非常實用的自帶庫和第三方庫,需要的朋友可以參考下
    2021-06-06
  • pandas中遍歷dataframe的每一個元素的實現(xiàn)

    pandas中遍歷dataframe的每一個元素的實現(xiàn)

    這篇文章主要介紹了pandas中遍歷dataframe的每一個元素的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 在langchain中對大模型的輸出進(jìn)行格式化實現(xiàn)

    在langchain中對大模型的輸出進(jìn)行格式化實現(xiàn)

    這篇文章主要為大家介紹了在langchain中對大模型的輸出進(jìn)行格式化實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Python @property使用方法解析

    Python @property使用方法解析

    這篇文章主要介紹了Python @property使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 基于Python實現(xiàn)人工智能算法的方法詳解

    基于Python實現(xiàn)人工智能算法的方法詳解

    Python已經(jīng)成為了機(jī)器學(xué)習(xí)領(lǐng)域最受歡迎的編程語言之一,Python的簡潔性和易用性使其成為了開發(fā)人員和數(shù)據(jù)科學(xué)家的首選語言,在本文中,我們將探討如何使用Python實現(xiàn)人工智能算法,感興趣的小伙伴跟著小編一起來探討吧
    2023-06-06

最新評論

内丘县| 泽普县| 铁力市| 张家港市| 德化县| 肥城市| 游戏| 高青县| 恩施市| 玉田县| 信宜市| 长子县| 弋阳县| 兰溪市| 浦东新区| 南通市| 阳信县| 象州县| 屏东县| 赤峰市| 丰台区| 睢宁县| 道真| 咸阳市| 正定县| 德江县| 屯昌县| 沈丘县| 深泽县| 河池市| 贵阳市| 锡林郭勒盟| 陕西省| 射洪县| 昔阳县| 曲阳县| 临湘市| 白玉县| 巍山| 汶川县| 滨州市|