FastAPI 学习之路(四)
系列文章:
FastAPI 学习之路(一)fastapi--高性能web开发框架
之前的文章分享了如何去在请求中增加参数,本文我们将分享如何增加查询参数。
有这样的一个需求,我们需要请求参数中增加参数,返回对应参数的值,我们不能在请求路径中增加。
我们看下在代码中如何实现?
1 2 3 4 5 6 | 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
)时,它们将转换为该类型并针对该类型进行校验。
我们在上面的请求中,我们默认给了默认值,当我们没有给参数的是时候,实际就是。
1 2 3 4 | #请求地址 http: / / 127.0 . 0.1 : 8000 / items / #实际相当于 http: / / 127.0 . 0.1 : 8000 / items / ?start = 0 &end = 2 |
那么假如我们有这样的一个需求,参数end是可选择的参数,有end就返回需求的,没有end 返回所有的。如何实现呢
1 2 3 4 5 6 7 8 9 10 11 | 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参数,看下接口的返回
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2017-09-25 一则小脚本(工作中用)