如何在FastAPI中使用查詢參數進行篩選資料
引言:
FastAPI 是一個基於 Python 的現代、快速(高效能)的 Web 框架。它簡單易用,同時性能也非常出色。本文將介紹如何在 FastAPI 中使用查詢參數進行資料篩選,以實現對資料的靈活查詢。
一、啟動FastAPI 應用程式
首先,我們需要建立一個FastAPI 的應用,並啟動它,如下所示:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello, FastAPI!"}
在上述程式碼中,我們建立了一個FastAPI 的應用,並定義了一個根路由/
,透過存取根路由,可以傳回一條簡單的訊息「Hello, FastAPI!」。
二、使用查詢參數進行資料篩選
在 FastAPI 中,我們可以使用 Query
類型的參數來接收查詢參數。以下是一個例子,示範如何使用查詢參數進行資料篩選:
from fastapi import FastAPI, Query app = FastAPI() @app.get("/users/") async def get_users(name: str = Query(None)): if name: # 根据查询参数 name 进行数据筛选 result = db.query().filter(User.name == name).all() else: # 若没有查询参数,则返回所有的用户数据 result = db.query().all() return {"users": result}
在上述程式碼中,我們定義了一個/users/
的路由,透過存取這個路由,可以取得用戶數據。此路由接受一個查詢參數 name
,用於篩選指定名稱的使用者資料。如果查詢參數 name
存在,我們就使用該參數進行資料篩選;否則,傳回所有的使用者資料。
三、多個查詢參數同時使用
在實際場景中,我們可能需要同時根據多個查詢參數進行資料篩選。以下是一個範例,示範如何同時使用多個查詢參數進行資料篩選:
from fastapi import FastAPI, Query app = FastAPI() @app.get("/users/") async def get_users(name: str = Query(None), age: int = Query(None)): query = db.query() if name: query = query.filter(User.name == name) if age: query = query.filter(User.age == age) result = query.all() return {"users": result}
在上述程式碼中,我們定義了一個/users/
的路由,並接受兩個查詢參數name
和age
。我們可以同時根據這兩個查詢參數進行資料篩選,從而實現更靈活的查詢操作。
四、使用預設值和校驗
FastAPI 也支援為查詢參數設定預設值,並進行校驗。例如,我們可以為age
查詢參數設定預設值為20
,並且限制age
的取值範圍在10
到50
之間:
from fastapi import FastAPI, Query app = FastAPI() @app.get("/users/") async def get_users(name: str = Query(None), age: int = Query(20, ge=10, le=50)): query = db.query() if name: query = query.filter(User.name == name) query = query.filter(User.age == age) result = query.all() return {"users": result}
在上述程式碼中,我們透過指定age
查詢參數的預設值為20
,並使用ge
和le
參數對age
進行了校驗。這樣,當請求中不指定age
查詢參數時,會自動使用預設值20
;而當指定age
查詢參數時,會進行取值範圍的校驗。
結論:
透過上述範例程式碼,我們了解如何在 FastAPI 中使用查詢參數進行資料篩選。使用查詢參數能夠為我們的應用增加靈活性,使得我們能夠根據具體需求自由地篩選資料。同時,FastAPI 提供了豐富的功能和選項,讓查詢參數的使用更加強大和便利。希望這篇文章能對你學習和使用 FastAPI 有所幫助。
以上是如何在FastAPI中使用查詢參數進行篩選數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!