前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI 学习之路(三)

FastAPI 学习之路(三)

作者头像
雷子
发布2021-07-29 15:26:58
5410
发布2021-07-29 15:26:58
举报

FastAPI 系列文章:

FastAPI 学习之路(一)

FastAPI 学习之路(二)

前言

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

正文

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

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

代码语言:javascript
复制
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)时,它们将转换为该类型并针对该类型进行校验。

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

代码语言:javascript
复制
#请求地址
http://127.0.0.1:8000/items/
#实际相当于
http://127.0.0.1:8000/items/?start=0&end=2

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

代码语言:javascript
复制
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是一个可以选填的参数,我们应该如何去实现呢。代码如下:

代码语言:javascript
复制
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参数,看下接口的返回

接口可以正常返回的。选填的参数增加后,这样就完成了。

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FastAPI 系列文章:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档