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 学习之 ...
随机推荐
- T-SQL - 习题02_将数据表year|month|amount查询成year|m1|m2|m3|m4的样式
时间:2017-09-11 整理:byzqy 题目:有个年度统计表,结构如下: 怎么样把这个表,查询成这样一个结果: 这是在面试过程中遇到的一个关于数据库的题,没有一点思路,不知它考查到的知识点是什么 ...
- Linux下用Sed查找IP地址
ip addr|sed -n '9p'|egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -nr 's#^.*inet (.*) b ...
- 为老的vueCli项目添加vite支持
1.前言 接手公司的某个项目已经两年了,现在每次启动项目都接近1分钟,hmr也要好几秒的时间,but vite2发布之后就看到了曙光,但是一直没有动手进行升级,昨天终于忍不住了,升级之后几秒钟就完成了 ...
- SpringMVC-初见
目录 什么是SpringMVC? DispatcherServlet 第一个MVC程序 配置版 Maven可能存在资源过滤的问题 注解版 RestFul和控制器 实现Controller接口 使用注解 ...
- 从零开始学习SQL SERVER(1)--- 了解SQL
SQL是什么 SQL (发音为 sequal [' sikwəl ' ]) SQL指 Structured Query Language 结构化查询语言,是用于访问和处理数据库的标准的计算机语言. ...
- 详解JDBC中的Class.forName(DriverName)
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法.通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态 ...
- PHP的引用计数是什么意思?
什么是引用计数 在PHP的数据结构中,引用计数就是指每一个变量,除了保存了它们的类型和值之外,还额外保存了两个内容,一个是当前这个变量是否被引用,另一个是引用的次数.为什么要多保存这样两个内容呢?当然 ...
- 判断手机浏览器还是微信浏览器(PHP)
//判断是否 微信浏览器 function isWeixin1() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== fa ...
- 一朵云、一张网、一体化 ——GRTN 打造最佳流媒体场景实践
阿里巴巴 GRTN 是面向流媒体云原生设计的,方便客户构建自己的流媒体云原生应用,让流媒体服务无处不在. 在近期召开的分布式云主题报告会上,阿里云资深技术专家卢日发表了题为<GRTN 打造阿里云 ...
- thinkphp5.0框架运行机制分享小结
1 访问index.php 入口文件,定义应用目录,加载框架引导文件 <?php // [ 应用入口文件 ] // 定义应用目录 define('APP_PATH', __DIR__ . '/. ...