fastApi笔记05-路径参数和数值校验

news2024/11/19 0:19:54

使用Path可以对路径参数声明与Query相同类型的校验和元数据

from typing import Annotated

from fastapi import FastAPI, Path, Query

app = FastAPI()


@app.get("/items/{item_id}")
async def read_items(
    item_id: Annotated[int, Path(title="The ID of the item to get")],
    q: Annotated[str | None, Query(alias="item-query")] = None,
):
    results = {"item_id": item_id}
    if q:
        results.update({"q": q})
    return results

路径参数一定是必需的,因为它必须是路径的一部分。

按需对参数进行排序

当声明一个必需的str类型查询参数时,并且不需要任何校验,所以不需要使用Query。但是仍需要使用Path来声明路径参数时,如果你将带有「默认值」的参数放在没有「默认值」的参数之前,Python 将会报错(这是python函数语法要求的,FastApi是不在乎顺序的)

 可以通过传递*来作为第一个函数,这样python就知道之后的所有参数都应作为关键字参数(键值对),也被称为 kwargs,来调用。即使它们没有默认值

from fastapi import FastAPI, Path

app = FastAPI()


@app.get("/items/{item_id}")
async def read_items(*, item_id: int = Path(title="The ID of the item to get"), q: str):
    results = {"item_id": item_id}
    if q:
        results.update({"q": q})
    return results

数值校验

 使用Query或Path都可以声明字符串约束,也可以声明数值约束

  • gt:大于(greater than)
  • ge:大于等于(greater than or equal)
  • lt:小于(less than)
  • le:小于等于(less than or equal)
from fastapi import FastAPI, Path, Query

app = FastAPI()


@app.get("/items/{item_id}")
async def read_items(
        *,
        item_id: int = Path(title="The ID of the item to get", ge=0, le=1000),
        q: str,
        size: float = Query(gt=0, lt=10.5),
):
    results = {"item_id": item_id}
    if q:
        results.update({"q": q})
    return results

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1462092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎样使用Pyglet库给推箱子游戏画关卡地图

目录 pyglet库 画图事件 按键事件 程序扩展 关卡地图 pyglet库 是一个跨平台的Python多媒体库,提供了一个简单易用的接口来创建窗口、加载图像和视频、播放音频、处理用户输入事件以及进行2D图形绘制。特别适合用于游戏开发、视听应用以及其它需要高效图形渲染…

32单片机基础:OLED调试工具的使用

下面会介绍OLED显示屏的驱动函数模块,先学会如何使用,至于OLED屏幕的原理和代码编写, 我们之后会再写一篇。 现在我们就是用OLED当一个调试的显示屏,方便我们调试程序。 为什么要调试呢,是为了方便我们看现象&#…

提升网络质量:UDPspeeder 实现网络优化与提速

提升网络质量:UDPspeeder 实现网络优化与提速 背景与意义原理与功能使用方法未来展望相关链接服务 在当今高度互联的网络环境下,网络质量的优化和提速对于用户体验至关重要。针对高延迟和丢包率较高的网络链路,UDPspeeder 提供了一种前向纠错…

推荐一个内网穿透工具,支持Windows桌面、Linux、Arm平台客户端

神卓互联是一款常用的内网穿透工具,它可以将本地服务器映射到公网上,并提供域名或子域名给外部访问。神卓互联具有简单易用、高速稳定的特点,支持Windows桌面版、Linux版、Arm版客户端,以及硬件等。 神卓互联内网穿透技术简介 企…

AndroidStudio 2024-2-21 Win10/11最新安装配置(Ktlion快速构建配置,gradle镜像源)

AndroidStudio 2024 Win10/11最新安装配置 教程目的: (从安装到卸载) ,针对Kotlin开发配置,gradle-8.2-src/bin下载慢,以及Kotlin构建慢的解决 好久没玩AS了,下载发现装个AS很麻烦,就觉得有必要出个教程了(就是记录一下:嘻嘻) 因…

【力扣 - 二叉树的直径】

题目描述 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 提示: 树中节点数目在范围 [1, 10000] 内…

Java基础API(2) String、StringBuilder详解

文章目录 🍸1. String类🍉🍉1.1 String概述🍉🍉1.2 String类的构造方法🍉🍉1.3 创建字符串对象的区别对比🍉🍉1.4 字符串的比较1.4.1 字符串的比较 🍉&#x…

为企业打造的人脸美肤解决方案

随着人工智能和图像处理技术的飞速发展,美颜美肤技术在众多领域,特别是社交娱乐、电子商务和广告行业中的应用日益广泛。为了满足企业对于高质量图像处理的需求,美摄科技推出了一款先进的基础人脸美肤解决方案。 美摄科技的基础人脸美肤解决…

Pytorch 复习总结 3

Pytorch 复习总结,仅供笔者使用,参考教材: 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为:Pytorch 多层感知机。 本文先介绍了多层感知机的用法,再就训练过程中经常出现的过拟…

数据结构 计算结构体大小

一、规则: 操作系统制定对齐量: 64位操作系统,默认8Byte对齐 32位操作系统,默认4Byte对齐 结构体对齐规则: 1.结构体整体的大小,需要是最大成员对齐量的整数倍 2.结构体中每一个成员的偏移量需要存在…

IDEA 2021.3激活

1、打开idea,在设置中查找Settings/Preferences… -> Plugins 内手动添加第三方插件仓库地址:https://plugins.zhile.io搜索:IDE Eval Reset 插件进行安装。应用和使用,如图

合纵连横 – 以 Flink 和 Amazon MSK 构建 Amazon DocumentDB 之间的实时数据同步

在大数据时代,实时数据同步已经有很多地方应用,包括从在线数据库构建实时数据仓库,跨区域数据复制。行业落地场景众多,例如,电商 GMV 数据实时统计,用户行为分析,广告投放效果实时追踪&#xff…

pytorch: ground truth similarity matrix

按照真实标签排序pair-wise相似度矩阵的Pytorch代码 本文仅作留档,用于输出可视化 Inputs: Ground-truths Y ∈ R n 1 \mathbf{Y}\in\mathbb R^{n\times 1} Y∈Rn1, Similarity matrix A ∈ R n n \mathbf{A}\in\mathbb R^{n\times n} A∈RnnOutputs: Block dia…

【无标题】https://www.php.cn/faq/602417.html

https://www.php.cn/faq/602417.htmlTOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编…

Mysql系列之命令行登录、连接工具登录、数据库表常用命令

登录与常用命令 连接工具登录命令行登录数据库1、查看数据库2、指定数据库3、查看当前数据库4、建库语句 数据表1、查看数据表2、查看表结构信息3、查看建表语句4、建表语句 连接工具登录 首先下载mysql连接工具,解压后直接打开软件,按以下步骤操作&…

车载氢气浓度传感器为氢能源车保驾护航

最近,车载氢气浓度传感器成为了一个热门话题。作为一名对科技充满热情的汽车爱好者,我自然也对这个话题产生了浓厚的兴趣。那么,车载氢气浓度传感器到底是什么?它又是如何工作的呢?下面就让我为你一一揭秘。 首先&…

C++ Primer 笔记(总结,摘要,概括)——第7章 类

目录 ​编辑 7.1 定义抽象数据类型 7.1.1 设计Sales_data类 7.1.2 定义改进的Sales_data类 7.1.3 定义类相关的非成员函数 7.1.4 构造函数 7.1.5 拷贝、赋值和析构 7.2 访问控制和封装 7.2.1 友元 7.3 类的其他特性 7.3.1 类成员再探 7.3.2 返回*this的成员函数 7.3.3 类类…

大蟒蛇(Python)笔记(总结,摘要,概括)——第10章 文件和异常

目录 10.1 读取文件 10.1.1 读取文件的全部内容 10.1.2 相对文件路径和绝对文件路径 10.1.3 访问文件中的各行 10.1.4 使用文件的内容 10.1.5 包含100万位的大型文件 10.1.6 圆周率中包含你的生日吗 10.2 写入文件 10.2.1 写入一行 10.2.2 写入多行 10.3 异常 10.3.1 处理Ze…

SpringBoot整合POIExcel: 实现导入导出Excel功能

SpringBoot整合POIExcel: 实现导入导出Excel功能 SpringBoot整合POIExcel: 实现导入导出Excel功能摘要引言依赖Poi包结构读取Excel表格读取Excel表格写入Excel表格 实战测试导入表格导出表格代码实现细节 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f…

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】

C面向对象程序设计-北京大学-郭炜【课程笔记(四)】 1、this指针1.1、this指针的作用1.2、this指针和静态成员函数 2、静态成员变量和静态成员函数2.1、基本概念2.2、基本概念总结2.3、如何访问静态成员2.4、静态成员变量的使用场景(重要&…