FastAPI 学习之路(四)

简介: FastAPI 学习之路(四)

系列文章:


  FastAPI 学习之路(一)fastapi--高性能web开发框架


  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,那么我看下请求结果


image.png


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


image.png


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


image.png


所以,当声明了 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参数,接口返回


image.png


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


image.png


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


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


image.png


image.png


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

         

       有这样的一个需求,我们希望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]


我们去请求下:


image.png


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


image.png



相关文章
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
|
NoSQL Redis 数据库
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论
FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论
FastAPI(七十六)实战开发《在线课程学习系统》接口开发-- 课程详情
FastAPI(七十六)实战开发《在线课程学习系统》接口开发-- 课程详情