系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 之前的文章分享了如何去在请求中增加参数,本文我们将分享如何增加查询参数。 有这样的一个需求,我们需要请求参数中增加参数,返回对应参数的值,我们不能在请求路径中增加。 我们看下在代码中如何实现? 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 类型(在上面的示例中为 我们在上面的请求中,我们默认给了默认值,当我们没有给参数的是时候,实际就是。 #请求地址 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 FastAPIfrom 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参数,看下接口的返回 |
|