FastAPI 学习之路(六)查询参数,字符串的校验
系列文章:
FastAPI 学习之路(一)fastapi--高性能web开发框架
本次分享的是分享的是查询参数,字符串的校验。
我们看一个demo。
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/")
def update_items(m: Optional[str] = None):
results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
if m:
results.update({"shanghai": m})
return results
我们不去传递参数的时候请求下,

当我们传递了m的时候,我们看下结果。

我们看了下,结果是是更新了。
增加校验 ,我们打算添加约束条件:即使 m 是可选的,但只要提供了该参数,则该参数值不能超过2的长度。
我们看下如何实现
from typing import Optional
from fastapi import FastAPI,Query
app = FastAPI()
@app.get("/items/")
def update_items(m: Optional[str] = Query(None, max_length=2)):
results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
if m:
results.update({"shanghai": m})
return results
我们传递下看看是否满足,我们传递一个超过2个字符串的。结果返回如下。

这是超过了长度,当我们不超过长度的时候呢,就可以正常更新。

如果我们要求最长的不能超过10个字符,最短不能低于5个字符串怎么实现呢。
from typing import Optional from fastapi import FastAPI,Query app = FastAPI()
@app.get("/items/")
async def update_items(m: Optional[str] = Query(None, max_length=10,min_length=5)):
results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
if m:
results.update({"shanghai": m})
return results
我们看下传递低于5个。

长度大于10个,接口已经给我们返回的错误的原因。

合适的长度,我们看下接口的请求

我们还有这样的一个需求,我们需要匹配参数,参数开头包含name的。如何实现。
from typing import Optional
from fastapi import FastAPI,Query
app = FastAPI()
@app.get("/items/")
async def update_items(m: Optional[str] = Query(None, regex='^name',max_length=10,min_length=5)):
results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
if m:
results.update({"shanghai": m})
return results
我们请求下,看下是否满足,当我们请求不满足需求的时候,

那我们看下,满足需求的请求,如何返回。

我们看到了,接口可以正常返回。
文章首发在公众号,欢迎关注。

FastAPI 学习之路(六)查询参数,字符串的校验的更多相关文章
- FastAPI 学习之路(七)字符串的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- Object-c学习之路六(oc字符串文件读写)
// // main.m // NSString // // Created by WildCat on 13-7-25. // Copyright (c) 2013年 wildcat. All ri ...
- FastAPI 学习之路(二十七)安全校验
你写API接口肯定你是希望是有权限的人才能访问,没有权限的人是不能访问的,那么我们应该如何去处理呢,我们可以用的验证方式有很多,我们这次分享的是用:OAuth2来认证.那么我们看下,需要怎么才能实现呢 ...
- FastAPI 学习之路(八)路径参数和数值的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(九)请求体有多个参数如何处理?
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十三)Cookie 参数,Header参数
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十六)Form表单
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十二)接口几个额外信息和额外数据类型
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十)请求体的字段
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十一)请求体 - 嵌套模型
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
随机推荐
- MySQL双主多从+Keepalived配置
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 实际部署 2.1 MySQL双主+Keepalived高可用 2 ...
- k8s 存活探针,滚动更新
文章原文 存活探针 Kubelet使用liveness probe(存活探针)来确定何时重启容器.例如,当应用程序处于运行状态但无法做进一步操作,liveness探针将捕获到deadlock,重启处于 ...
- DorisDB升级为StarRocks,全面开源!
今天被朋友圈刷屏了,StarRocks开源--携手未来,星辰大海! 原文链接:StarRocks开源--携手未来,星辰大海! 可能大家对StarRocks不太熟悉,但是DorisDB想必都是听说过的. ...
- WEB安全性测试之拒绝服务攻击
1,认证 需要登录帐号的角色 2,授权 帐号的角色的操作范围 3,避免未经授权页面直接可以访问 使用绝对url(PS:绝对ur可以通过httpwatch监控每一个请求,获取请求对应的页面),登录后台的 ...
- MyBatis的多表查询笔记
MyBatis的多表查询 随着学习的进步,需求的提高,我们在实际开发中用的最多的还是多表查询,就让我们一起学习MyBatis中的多表查询. 数据库准备 Class表 Student表 项目结构 这次使 ...
- Intel® QAT加速卡之加密、哈希操作流程和示例
Intel QAT 加密API介绍 文章主要讲述了Intel QAT 加密API接口的说明,以及多种应用场景下的使用方法. 文章目录 Intel QAT 加密API介绍 1. 概述 1.1 会话(se ...
- vs2015使用tcmalloc(windows)
编译lib库 1.https://github.com/gperftools/gperftools 去tag中下载了2.4版本(最新的2.9.1版本 用了c++17的新特性折叠表达式,vs2015不 ...
- mysql升级-rpm安装
mysql版本5.7.29升级到5.7.30 由于我们安装mysql的方式是通过mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar中的rpm包安装:rpm -Uvh my ...
- 数据结构与算法——平衡二叉树(AVL树)
目录 二叉排序树存在的问题 基本介绍 单旋转(左旋转) 树高度计算 旋转 右旋转 双旋转 完整代码 二叉排序树存在的问题 一个数列 {1,2,3,4,5,6},创建一颗二叉排序树(BST) 创建完成的 ...
- 学习PHP中国际化地数字格式处理
不知道大家有没有了解过,对于数字格式来说,西方国家会以三位为一个进位,使用逗号来分隔.比如,12345678,用标准的格式来表示的话就是 12,345,678 .不过我们中文其实并不会有这样的分隔符, ...