FastAPI 学习之路(六)查询参数,字符串的校验

本次分享的是分享的是查询参数,字符串的校验。

   我们看一个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/")
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/")
def update_items(m: Optional[str] = Query(None, max_length=10, min_length=5, regex="^name")):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if m:
        results.update({"shanghai": m})
    return results

我们请求下,看下是否满足,当我们请求不满足需求的时候,

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

我们看到了,接口可以正常返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值