FastAPI中使用查询参数进行筛选数据
FastAPI是一个快速(高性能)且基于标准Python类型提示的API框架。它基于Starlette,使其快速、可靠且具有威力,同时提供了几乎与Flask相同的体验,包括:请求和响应对象、路由和其他扩展。
FastAPI支持使用查询参数对API数据进行筛选,现在我们就来学习如何在FastAPI中使用查询参数进行筛选数据。
1. 开始之前需要安装FastAPI库
我们可以使用pip进行安装,输入如下命令:
pip install fastapi
同时也需要安装uvicorn来运行FastAPI应用程序,使用如下命令进行安装:
pip install uvicorn
2. 创建一个FastAPI应用程序
在项目的根目录下创建一个名为main.py的文件,并写入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
这段代码的意思是,我们创建了一个FastAPI应用程序,然后定义了一个路由,该路由将在我们访问应用程序的根URL时返回“Hello World”消息。
3. 数据源的准备
现在我们需要创建一些模拟数据,这些数据将用于测试我们的API。我们将创建一个名为items的Python列表,该列表将包含两个字典,每个字典中包含item的名称和item的价值:
from fastapi import FastAPI
app = FastAPI()
items = [
{"name": "item1", "price": 50},
{"name": "item2", "price": 100}
]
@app.get("/")
async def root():
return {"message": "Hello World"}
4. 使用查询参数进行数据筛选
现在我们已经准备好了API的数据源和路由,我们可以开始编写实际的查询参数代码。 我们将创建使用查询参数来筛选items的路由。
我们需要使用如下代码创建路由:
@app.get("/items")
async def read_item(price: float):
items_filtered_by_price = []
for item in items:
if item["price"] >= price:
items_filtered_by_price.append(item)
return {"items_filtered_by_price": items_filtered_by_price}
这里我们定义了一个名为read_item的路由。该路由有一个名为price的查询参数,并定义为float类型。
路由的主体部分遍历整个items列表,并将价格大于等于查询参数的items添加到另一个列表中。
我们只需要在API URL中传递查询参数,您就可以测试我们刚刚创建的路由了。举个例子,如果我们想要获得价格大于100的items,我们可以执行以下操作:http://localhost:8000/items?price=100
5. 完整代码
最后,我们将整个代码放在一起,以便您可以再次复习。
from fastapi import FastAPI
app = FastAPI()
items = [
{"name": "item1", "price": 50},
{"name": "item2", "price": 100}
]
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items")
async def read_item(price: float):
items_filtered_by_price = []
for item in items:
if item["price"] >= price:
items_filtered_by_price.append(item)
return {"items_filtered_by_price": items_filtered_by_price}
总结
在本文中,我们学习了如何在FastAPI中使用查询参数筛选数据。FastAPI是一个强大的Python框架,提供了基于标准Python类型提示的API快速创建体验。 我们希望这篇文章能够使你快速入门FastAPI,并能够在自己的项目中使用查询参数对API数据进行筛选。