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

Python FastAPI 多參數(shù)傳遞的示例詳解

 更新時間:2022年12月15日 15:46:17   作者:Aidon-東哥博客  
這篇文章主要介紹了Python FastAPI 多參數(shù)傳遞,FastAPI通過模板來匹配URL中的參數(shù)列表,大概分為三類方式傳遞參數(shù),每種方式結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下

Python FastAPI請求參數(shù)傳遞

FastAPI多參數(shù)傳遞類型

FastAPI通過模板來匹配URL中的參數(shù)列表,大致有如下三類方式傳遞參數(shù):

  • 路徑參數(shù)傳遞:獲取自定義的構(gòu)造URL中的參數(shù)
  • GET參數(shù)傳遞:獲取一個URL后面帶的?param1=1&param2=2這種類型參數(shù)
  • POST參數(shù)傳遞:獲取POST請求中的參數(shù),因為POST是加密的,因此更加安全,但有額外開銷,測試API使用額外工具或插件或者自己寫Request等

路徑多參數(shù)傳遞

  • 訪問url:
  • http://127.0.0.1:8001/uname=goudan/sex=1/age=18
  • 匹配模板:
  • http://127.0.0.1:8001/uname=值1/sex=值2/age=值3
  • 對應(yīng)API代碼
import uvicorn
from fastapi import FastAPI

#構(gòu)造FastAPI實例
app = FastAPI(name="mutilParam")

""""
路徑多參數(shù)傳遞
訪問url:
http://127.0.0.1:8001/uname=goudan/sex=1/age=18
匹配模板:
http://127.0.0.1:8001/uname=值1/sex=值2/age=值3
對應(yīng)API代碼:
"""

@app.get("/uname={uname}/sex={sex}/age={age}")
async def api1(uname: str, sex, age: str):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }

GET請求多參數(shù)傳遞

訪問url:http://127.0.0.1:8001/get?uname=goudan&sex=1&age=18 

匹配模板:http://127.0.0.1:8001/get?uname=值1&sex=值2&age=值3 

對應(yīng)API代碼

import uvicorn
from fastapi import FastAPI

#構(gòu)造FastAPI實例
app = FastAPI(name="mutilParam")

""""
GET請求多參數(shù)傳遞
訪問url:
http://127.0.0.1:8001/get?uname=goudan&sex=1&age=18
匹配模板:
http://127.0.0.1:8001/get?uname=值1&sex=值2&age=值3
對應(yīng)API代碼:
"""
@app.get("/get")
async def api2(uname=Query(None), sex=Query(...), age=Query(None)):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }

注意:

參數(shù)里uname=Query(None):
uname對應(yīng)著傳入URL里的?uname=xxx
Query()是導(dǎo)的包from fastapi import Query
Query(None)里的None是默認值,可以是任意值,當(dāng)URL里沒有傳入這個參數(shù)時,就會用默認值替代;當(dāng)None為…,則表示為必須傳遞參數(shù)

POST請求多參數(shù)傳遞

  • 訪問url:

http://127.0.0.1:8001/post
body中參數(shù):{“uname”:“goudan”,“sex”:“1”,“age”:“18”}

  • 匹配模板:

http://127.0.0.1:8001/post

  • body中參數(shù):{uname=值1, sex=值2, age=值3}

對應(yīng)API代碼

import uvicorn
from fastapi import FastAPI

#構(gòu)造FastAPI實例
app = FastAPI(name="mutilParam")

""""
POST請求多參數(shù)傳遞
"""
@app.post("/post")
async def api3(uname=Body(None), sex=Body(...), age=Body(None)):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }

注意:

Post參數(shù)傳遞幾乎和GET相似,就是將Query替換成來寫,參數(shù)里uname=Body(None):
Body()是導(dǎo)的包from fastapi import Body
Body的寫法與用法和Query相同,括號里是默認值
uname=Body(None)里的None是默認值,可以是任意值,當(dāng)URL里沒有傳入這個參數(shù)時,就會用默認值替代;當(dāng)None為…,則表示為必須傳遞參數(shù)

案例完整代碼

三種參數(shù)傳遞API的完整代碼如下:

import uvicorn
from fastapi import FastAPI
from fastapi import Query
from fastapi import Body

#構(gòu)造FastAPI實例
app = FastAPI(name="mutilParam")

""""
路徑多參數(shù)傳遞
訪問url:
http://127.0.0.1:8001/uname=goudan/sex=1/age=18
匹配模板:
http://127.0.0.1:8001/uname=值1/sex=值2/age=值3
對應(yīng)API代碼:
"""

@app.get("/uname={uname}/sex={sex}/age={age}")
async def api1(uname: str, sex, age: str):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }

""""
GET請求多參數(shù)傳遞
訪問url:
http://127.0.0.1:8001/get?uname=goudan&sex=1&age=18
匹配模板:
http://127.0.0.1:8001/get?uname=值1&sex=值2&age=值3
對應(yīng)API代碼:
參數(shù)里uname=Query(None):
    uname對應(yīng)著傳入URL里的?uname=xxx
    Query()是導(dǎo)的包from fastapi import Query
    Query(None)里的None是默認值,可以是任意值,當(dāng)URL里沒有傳入這個參數(shù)時,就會用默認值替代;當(dāng)None為...,則表示為必須傳遞參數(shù)
"""
@app.get("/get")
async def api2(uname=Query(None), sex=Query(...), age=Query(None)):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }


""""
POST請求多參數(shù)傳遞
訪問url:
http://127.0.0.1:8001/post
{"uname":"goudan","sex":"1","age":"18"}
匹配模板:
http://127.0.0.1:8001/post
{"uname":"xxx","age":"x"}
對應(yīng)API代碼:

Post參數(shù)傳遞幾乎和GET相似,就是將Query替換成來寫:
參數(shù)里uname=Body(None):
Body()是導(dǎo)的包from fastapi import Body
Body的寫法與用法和Query相同,括號里是默認值
uname=Body(None)里的None是默認值,可以是任意值,當(dāng)URL里沒有傳入這個參數(shù)時,就會用默認值替代;當(dāng)None為...,則表示為必須傳遞參數(shù)
"""
@app.post("/post")
async def api3(uname=Body(None), sex=Body(...), age=Body(None)):
    return {
        "uname": uname,
        "sex": sex,
        "age": age,
    }

#主函數(shù)
if __name__ == '__main__':
    #啟動服務(wù)
    uvicorn.run(app='MutilParamOfAPI:app', host="127.0.0.1", port=8001, reload=False)

案例完整測試

啟動服務(wù)

在完整代碼案例中任何位置—>右鍵—>Run MutilParamOfAPI—>信息如下:

/Users/liyadong/PycharmProjects/MyAPI/MutilParamOfAPI.py 
INFO:     Started server process [31526]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit)

訪問測試

  • 路徑多參數(shù)測試

瀏覽器訪問輸入地址欄如下:

http://127.0.0.1:8001/uname=goudan/sex=1/age=18

  • 瀏覽器頁面信息如下:
{"uname":"goudan","sex":"1","age":"18"}

{"uname":"goudan","sex":"1","age":"18"}

GET請求多參數(shù)測試

  • 瀏覽器訪問輸入地址:http://127.0.0.1:8001/get?uname=goudan&sex=1&age=18

瀏覽器頁面信息如下:

{"uname":"goudan","sex":"1","age":"18"}

POST請求多參數(shù)測試

到此測試就完畢了,關(guān)于可傳參數(shù)和必傳參數(shù),大家自行減少參數(shù)鍵值對即可。

參考資料:
https://blog.csdn.net/weixin_35757704/article/details/123392281

到此這篇關(guān)于Python FastAPI 多參數(shù)傳遞的文章就介紹到這了,更多相關(guān)Python FastAPI 多參數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)

    如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)

    本文通過詳細的理論介紹和簡單易懂的實例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運用到自己的開發(fā)工程中
    2018-04-04
  • python類和繼承用法實例

    python類和繼承用法實例

    這篇文章主要介紹了python類和繼承用法,實例分析了Python類的定義與繼承的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • django+echart繪制曲線圖的方法示例

    django+echart繪制曲線圖的方法示例

    這篇文章主要介紹了django+echart繪制曲線圖的方法示例,可以了解Django中aggregate和annotate函數(shù)的使用方法及其Django+Echarts繪制柱狀圖的完整示例,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    這篇文章主要為大家詳細介紹了如何解決Python中保存CSV文件內(nèi)容亂碼的問題,并提供詳細的示例代碼以更好地理解和解決這個問題,希望對大家有所幫助
    2024-03-03
  • 詳解Golang 與python中的字符串反轉(zhuǎn)

    詳解Golang 與python中的字符串反轉(zhuǎn)

    這篇文章主要介紹了詳解Golang 與python中的字符串反轉(zhuǎn)的相關(guān)資料,這里提供了實現(xiàn)的實例以便大家學(xué)習(xí)理解,需要的朋友可以參考下
    2017-07-07
  • Pytorch中的自動求梯度機制和Variable類實例

    Pytorch中的自動求梯度機制和Variable類實例

    今天小編就為大家分享一篇Pytorch中的自動求梯度機制和Variable類實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python的基本語法詳解

    Python的基本語法詳解

    本文詳細講解了Python的基本語法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 深入淺析Python的類

    深入淺析Python的類

    這篇文章是一篇關(guān)于python基礎(chǔ)知識內(nèi)容,主要講述了關(guān)于類的相關(guān)知識點,有興趣的朋友參考下。
    2018-06-06
  • python面向?qū)ο髮崿F(xiàn)名片管理系統(tǒng)文件版

    python面向?qū)ο髮崿F(xiàn)名片管理系統(tǒng)文件版

    這篇文章主要為大家詳細介紹了python面向?qū)ο髮崿F(xiàn)名片管理系統(tǒng)文件版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python全局變量用法實例分析

    Python全局變量用法實例分析

    這篇文章主要介紹了Python全局變量用法,結(jié)合實例形式分析了Python中全局變量的定義、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-07-07

最新評論

施秉县| 沿河| 江口县| 安泽县| 镇安县| 高邑县| 出国| 襄城县| 东光县| 满城县| 忻州市| 锦州市| 大宁县| 竹溪县| 香格里拉县| 平舆县| 古田县| 和平区| 隆子县| 十堰市| 武山县| 香港| 长兴县| 合阳县| 敦化市| 保德县| 格尔木市| 商丘市| 井研县| 高邑县| 贵定县| 奇台县| 田阳县| 睢宁县| 山西省| 高阳县| 汕尾市| 河间市| 呼伦贝尔市| 浙江省| 宝坻区|