一文搞定FastAPI中的查詢參數(shù)
一、查詢參數(shù)定義
路徑操作函數(shù)中,不是路徑參數(shù)的其他參數(shù),就是查詢參數(shù)。比如:
from fastapi import FastAPI app = FastAPI() @app.get( "/items" ) def read_item(item_id:int,item_name:str): return { "item_id" : item_id,"item_name":item_name} if __name__ == "__main__" : import uvicorn uvicorn.run( "quickstart.demo:app" ,reload=True ,port= 8001)
item_id,item_name 都不是路徑參數(shù),所以它就是查詢參數(shù)。
二、查詢參數(shù)作用
方便給 路徑操作函數(shù) 傳參
三、查詢參數(shù)基本使用
3.1. URL拼接和必需參數(shù)
查詢參數(shù),一般是在 URL 的 ?
后,并以 &
分割,比如:
from fastapi import FastAPI app = FastAPI() @app.get( "/items" ) def read_item(item_id:int,item_name:str): return { "item_id" : item_id,"item_name":item_name} if __name__ == "__main__" : import uvicorn uvicorn.run( "quickstart.demo:app" ,reload=True ,port= 8001)
此時 item_id
和 item_name
都是必需的,URL必須傳這兩個參數(shù)。啟動程序,然后在瀏覽器中訪問 http://127.0.0.1:8001/items?item_id=1&item_name=xiaoming
,響應(yīng)為:
{"item_id":1,"item_name":"xiaoming"}
3.2. 默認值
查詢參數(shù)可以設(shè)置默認值,如:item_name
默認值為 xiaoming
from fastapi import FastAPI app = FastAPI() @app.get( "/items" ) def read_item(item_id:int,item_name:str='xiaoming'): return { "item_id" : item_id,"item_name":item_name} if __name__ == "__main__" : import uvicorn uvicorn.run( "quickstart.demo:app" ,reload=True ,port= 8001)
訪問 http://127.0.0.1:8001/items?item_id=1&item_name=xiaoming
和訪問 http://127.0.0.1:8001/items?item_id=1
他們的結(jié)果都是一樣的。因為URL 中不設(shè)置 item_name
的值,它會用默認值來填充。
3.3. 可選參數(shù)
查詢參數(shù)可以設(shè)置為可選參數(shù),如 item_name=None
可選參數(shù)的意思:URL中可以不包含這個參數(shù),屬于可有可無
from fastapi import FastAPI app = FastAPI() @app.get( "/items" ) def read_item(item_id:int,item_name:str=None): if item_name: return { "item_id" : item_id,"item_name":item_name} else: return { "item_id" : item_id} if __name__ == "__main__" : import uvicorn uvicorn.run( "quickstart.demo:app" ,reload=True ,port= 8001)
訪問 http://127.0.0.1:8001/items?item_id=1&item_name=xiaoming
響應(yīng)為:
{"item_id":1,"item_name":"xiaoming"}
和訪問 http://127.0.0.1:8001/items?item_id=1
響應(yīng)為:
{"item_id":1}
3.4. Pydantic 模型( 請求體 )作為查詢參數(shù)
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str price: float @app.put( "/items/{item_id}" ) def put_item(item_id:int,item:Item): return { "item_id" : item_id, "item" :item} if __name__ == "__main__" : import uvicorn uvicorn.run( "quickstart.demo:app" , reload=True, port=8001)
Client端:
import requests data={ "name" : "flow" , "price" :2.3} respone=requests.put( "http://127.0.0.1:8001/items/1" ,json=data) print(respone.json())
respone的結(jié)果:
{'item_id': 1, 'item': {'name': 'flow', 'price': 2.3}}
三、總結(jié)
本文詳細介紹了查詢參數(shù)在FastAPI中的基本使用方法,包括URL拼接和必需參數(shù)、默認值、可選參數(shù)和Pydantic模型作為查詢參數(shù)的使用。通過這些方法,可以靈活地處理和傳遞查詢參數(shù),實現(xiàn)更豐富的功能需求。
到此這篇關(guān)于一文搞定FastAPI中的查詢參數(shù)的文章就介紹到這了,更多相關(guān)FastAPI查詢參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tf.truncated_normal與tf.random_normal的詳細用法
本篇文章主要介紹了tf.truncated_normal與tf.random_normal的詳細用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03導(dǎo)入tensorflow時報錯:cannot import name ''abs''的解決
這篇文章主要介紹了導(dǎo)入tensorflow時報錯:cannot import name 'abs'的解決,文中介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10pygame實現(xiàn)井字棋之第二步邏輯實現(xiàn)
這篇文章主要介紹了pygame實現(xiàn)井字棋之第二步邏輯實現(xiàn),文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05Python生成ubuntu apt鏡像地址實現(xiàn)
本文主要介紹了Python生成ubuntu apt鏡像地址實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05聊聊python中的load、loads實現(xiàn)反序列化的問題
在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型。本文給大家分享python中的load、loads實現(xiàn)反序列化的問題,感興趣的朋友一起看看吧2021-10-10