FastAPI(5)- get 请求 - 查询参数 Query Parameters
什么是查询参数?
http://127.0.0.1:8000/get?name=xxx&age=18
http://127.0.0.1:8000/get?age=18&name=xxx
在 url 的 ? 后面跟着的一组或多组键值对,就是查询参数
FastAPI 的查询参数
- 当声明了不属于路径参数以外的其他函数参数时, FastAPI 会自动解析为查询参数
- 和路径参数不同,查询参数可以是可选非必填的,也可以具有默认值
路径参数+请求参数的栗子
from fastapi import FastAPI
import uvicorn app = FastAPI() # 路径参数+请求参数
@app.get("/items/{item_id}")
async def read_item(item_id: str, name: str):
return {"item_id": item_id, "name": name} if __name__ == "__main__":
uvicorn.run(app="3_get_query:app", host="127.0.0.1", port=8080, reload=True, debug=True)
正确传参的请求结果

必传参数+可选参数的栗子
from typing import Optional # 必传参数+可选参数
@app.get("/items")
async def read_item(item_id: str, name: Optional[str] = None):
return {"item_id": item_id, "name": name}
不传 name 的请求结果

name 没传所以取默认值 None
查询参数类型自动转换
# 查询参数类型转换
@app.get("/items/{item_id}")
async def read_item(item_id: str, q: Optional[str] = None, short: bool = False):
item = {"item_id": item_id}
if q:
item.update({"q": q})
if not short:
# 如果 short == False,则加多一个键 description
item.update(
{"description": "This is an amazing item that has a long description"}
)
return item
short 是 True 的请求结果


short 是 False 的请求结果

指定枚举类型请求参数的栗子
from enum import Enum
from typing import Optional, List # 自定义枚举类
class ModelName(Enum):
boy = "男"
girl = "女"
unknown = "不知道" @app.get("/item_enum")
async def read_item(name: str,
sex: Optional[ModelName] = ModelName.unknown):
return {
"name": name,
"sex": sex
}
参数传枚举值的请求结果

不传 sex 的请求结果

不传 sex,会取 sex 的默认值:枚举类中的 unknown 的值
查询参数能用 List[str] 传参吗?
# List[str]
@app.get("/list")
async def read_item(address: List[str] = None):
return {"address": address}
postman 请求的结果

- 即使参数值写成数组形式也不会传值成功,因为查询参数都是字符串
- 所以 ["广州","深圳"] 其实是一个字符串 str,并不是 List[str],那要怎么才能传数组呢?
分开多次传 address 可以吗?

答案也是不行
那要怎么做呢?
用 Query 库! 下一篇会讲到!
https://www.cnblogs.com/poloyy/p/15306809.html
FastAPI(5)- get 请求 - 查询参数 Query Parameters的更多相关文章
- 查询参数: Query Parameters
官方文档地址: https://fastapi.tiangolo.com/zh/tutorial/query-params/ # -*- coding: UTF-8 -*- from fastapi ...
- FastAPI(4)- get 请求 - 路径参数 Path Parameters
什么是路径 假设一个 url 是: http://127.0.0.1:8080/items/abcd 那么路径 path 就是 /items/abcd 路径参数 就是将路径上的某一部分变成参数,可通过 ...
- Hibernate5.x版本HQL限定查询 Legacy-style query parameters (`?`) are no longer supported
在此版本的限定查询和4.0版本的限定查询: 如果查询语句是: String hql = "select u from User u where u.gender = ?"; 会出现 ...
- FeignClient调用POST请求时查询参数被丢失的情况分析与处理
前言 本文没有详细介绍 FeignClient 的知识点,网上有很多优秀的文章介绍了 FeignCient 的知识点,在这里本人就不重复了,只是专注在这个问题点上. 查询参数丢失场景 业务描述: 业务 ...
- FastAPI(6)- get 请求 - 详解 Query
可选参数 上一篇文章讲过查询参数可以不是必传的,可以是可选参数 from fastapi import FastAPI from typing import Optional import uvico ...
- FastAPI 学习之路(六)查询参数,字符串的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)
业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ...
- DAX/PowerBI系列 - 查询参数用法详解(Query Parameter)
PowerBI - 查询参数用法详解(Query Parameter) 很多人都不知道查询参数用来干啥,下面总结一下日常项目中常用的几个查询参数的地方.(本人不太欢hardcode的东西) 使用查询 ...
- SpringBoot16 MockMvc的使用、JsonPath的使用、请求参数问题、JsonView、分页查询参数、JsonProperty
1 MockMvc的使用 利用MockMvc可以快速实现MVC测试 坑01:利用MockMvc进行测试时应用上下文路径是不包含在请求路径中的 1.1 创建一个SpringBoot项目 项目脚手架 1. ...
随机推荐
- Quartz 实现同一辅助类 重复开启多任务
前言: 最近做一个项目,需要用到定时任务,第一就想到了Quartz,然后很开心的就实现了功能,但是后来发现一个问题,如果需要开启多个定时任务,需要写多个辅助类,而辅助类里面的功能基本差不多,这是我就想 ...
- 去除Windows-XP系统下的关机功能
by han 去除Windows-XP系统下的关机功能 一.去除"开始菜单"中"关机"功能 1.点击左下角"开始",然后"运行&q ...
- kong整合Cosul实践(3)
1. 准备工作: 需要.netcore或者java程序一套,引入consul第三方包 我这里搭建了一个.netcore的webapi项目,引入Consul第三方包,网上可查资料一堆 环境需要kong, ...
- UserControl 加载动画
效果:实现加载UserControl动画效果 cs代码如下 public class BaseModuleView : UserControl { private TranslateTransform ...
- shell——sort、uniq、tr、cut和eval命令
一.排序命令sort 以行位单位对文件内容进行排序,也可以根据不同的数据类型进行排序 格式:sort [选项] 参数 格式:cat file | sort 选项 1.2常用选项 选项说明 -f 忽略大 ...
- Tomcat进程意外退出的问题分析
http://ifeve.com/why-kill-2-cannot-stop-tomcat/?tdsourcetag=s_pctim_aiomsg tail后关掉客户端 正常执行shutdown.s ...
- 阿里云NAS文件迁移项目实践
阿里云文件存储NAS是阿里云推出的用于传统文件共享的,使用NFS协议挂载的共享文件夹. 产品背景 下图是NAS和阿里云另一明星产品OSS以及块存储EBS的区别 NAS核心优势:无需修改程序,挂载之后, ...
- JSTL标签工具类
一.介绍: 1.Jsp Standrad Tag Lib: JSP中标准的标签工具类 2.由 sun公司 提供 3.组成:(1)核心标签:Java在jsp上基本功能进行封装 if whil ...
- STM32—SPI详解
目录 一.什么是SPI 二.SPI协议 物理层 协议层 1.通讯时序图 2.起始和停止信号 3.数据有效性 4.通讯模式 三.STM32中的SPI 简介 功能框图 1.通讯引脚 2.时钟控制逻辑 3. ...
- F与Q查询 事务 choices参数
F与Q查询 F查询 当我们需要将两个字段对应的数据进行比较时就需要用到F查询. select * from book where sold > stock 1.例如需要将售出部分数据和库存数据进 ...