FastAPI 学习之路(四)

本文介绍如何使用FastAPI处理查询参数,包括必填与可选参数,并演示如何通过指定参数范围来获取数据列表。
部署运行你感兴趣的模型镜像

之前的文章分享了如何去在请求中增加参数,本文我们将分享如何增加查询参数。

有这样的一个需求,我们需要请求参数中增加参数,返回对应参数的值,我们不能在请求路径中增加。

我们看下在代码中如何实现?

from fastapi import FastAPI

app = FastAPI()

data = ['北京', '上海', '深圳']


@app.get("/items/")
def read_item(start: int = 0, end: int = 2):
    return data[start:end]

我们默认规定了两个参数,一个是start另一个是end,初始值是0和2,那么我看下请求结果

那么我们看下增加参数如何返回

 可以正常返回接口参数组合返回的结果。错误的类型返回:

所以,当声明了 Python 类型(在上面的示例中为 int)时,它们将转换为该类型并针对该类型进行校验。

我们在上面的请求中,我们默认给了默认值,当我们没有给参数的是时候,实际就是:

#请求地址
http://127.0.0.1:8000/items/
#实际相当于
http://127.0.0.1:8000/items/?start=0&end=2

        那么假如我们有这样的一个需求,参数end是可选择的参数,有end就返回需求的,没有end 返回所有的。如何实现呢

from fastapi import FastAPI
from typing import Optional

app = FastAPI()

data = ['北京', '上海', '深圳']


@app.get("/items/")
def read_item(start: int = 0, end: Optional[int] = None):
    if end:
        return data[start:end]
    return data[start:-1]

我们不传入end参数,接口返回

当我们传递end参数,默认返回

这样我们的需求就完成了。

参数在请求到后端默认给我们转化了,当我们传入的end或者start的类型不对的时候:

这样就是参数类型是自动去转化的。

        有这样的一个需求,我们希望start是一个必填的参数,end是一个可以选填的参数,我们应该如何去实现呢。代码如下:

from fastapi import FastAPI
from typing import Optional

app = FastAPI()

data = ['北京', '上海', '深圳']


@app.get("/items/")
def read_item(start: int , end: Optional[int] =None):
    if end:
        return data[start:end]
    return  data[start:-1]

我们去请求下: 

 当我们输入start参数,看下接口的返回

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值