FastApi-03-查询参数

简介: FastApi-03-查询参数

何为查询参数


FastApi 中,声明不属于路径参数的其他函数参数时,它们将被自动解释为"查询字符串"参数。


示例代码


from fastapi import FastAPI
import uvicorn
app = FastAPI()
goods=['xiaomi','apple','huawei','oppo']
@app.get('/goods/')
async def get_goods(start:int = 0,end:int = 3):
    return goods[start:end]
if __name__ == "__main__":
    uvicorn.run(app='main:app',host='0.0.0.0',reload=True,debug=True)
复制代码


接口测试


带参数


网络异常,图片无法展示
|


带部分参数


因为在后台的视图函数中,两个查询参数都有默认值,所以我们可以对个别参数进行修改后进行请求测试。


网络异常,图片无法展示
|


使用默认参数


当我们在发送请求的时候,不携带查询参数,则后台在接收到请求后会使用默认参数进行处理。即使用start=1,end=3


网络异常,图片无法展示
|


可选参数


在我们实际开发中,某些参数可能需要,也可能不需要,这个根据用户的需求来定。


示例代码


@app.get('/name/{name}/age/{age}')
async def get_userinfo(name:str,age:int,j:Optional[bool]=False):
    ret = {'Name':name}
    if j:
        ret.update({'Age':age})
    return ret
复制代码


可选参数 j 作为判断条件,默认不返回年龄 age,当 j 为真时就会返回年龄信息。


接口测试


普通请求,默认不会返回年龄信息


网络异常,图片无法展示
|


携带参数 j 进行请求,会返回年龄信息


网络异常,图片无法展示
|


参数类型转换


如上,我们在携带参数 j 进行请求的时候其值为 TrueFastApi 为我们提供了更为方便的方式,就是查询参数的类型转换,即当其值为任何真值时,都可完成请求处理。


示例请求


j=1 时进行请求操作


网络异常,图片无法展示
|


j=0 时进行请求操作


网络异常,图片无法展示
|


必选的查询参数


在实际开发中,我们可能需要用户必须携带某个参数才能完成请求。


代码


我们只需要给上面的代码加上一个参数 q 即可,其余工作 FastApi 都会帮我们完成。


@app.get('/name/{name}/age/{age}')
async def get_userinfo(name:str,age:int,q:bool,j:Optional[bool]=False):
    ret = {'Name':name}
    if j:
        ret.update({'Age':age})
    return ret
复制代码


接口测试


当不带 q 参数进行请求


网络异常,图片无法展示
|


提示查询参数 q 缺失

当带上 q 参数进行请求


网络异常,图片无法展示
|


请求成功


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

相关文章
|
数据采集 JSON JavaScript
全面拥抱FastApi —三大参数及验证
全面拥抱FastApi —三大参数及验证
|
1月前
|
开发框架 JSON API
Python中FastAPI项目使用 Annotated的参数设计
Python中FastAPI项目使用 Annotated的参数设计
|
4月前
|
Python
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
202 1
|
网络安全 Windows
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
|
前端开发 中间件 API
FastAPI第二天---参数校验
FastAPI第二天---参数校验
211 0
FastAPI第二天---参数校验
|
Python
FastApi-07-查询参数校验
FastApi-07-查询参数校验
237 0
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
155 0
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
|
IDE API 开发工具
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
188 0
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景