FastAPI 学习之路(七)字符串的校验

简介: FastAPI 学习之路(七)字符串的校验

系列文章:

  FastAPI 学习之路(一)fastapi--高性能web开发框架

  FastAPI 学习之路(二)

  FastAPI 学习之路(三)

  FastAPI 学习之路(四)

  FastAPI 学习之路(五)

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


我们之前在声明必须的参数的时候呢,我们没有对长度做限定,现在我们要限定长度,长度8-16位。我们怎么来实现这个需求呢。


from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
def read(paword: str = Query(..., min_length=8,max_length=16)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if paword:
        results.update({"paword": paword})
    return results


其实实现起来很简单。这里需要说明:当你在使用 Query 且需要声明一个值是必需的时,可以将 ... 用作第一个参数值。


        那么我们去请求下。测试用例如下:


       1.没有传递paword参数。结果如下:


image.png


  2.传递参数,但是长度不满足


image.png


image.png


 两个长度一个是小于8位,一个是大于16位。


3.传递正确长度参数


image.png


我们假设的需求满足了。可能有人会问...,可以看官方文档的https://docs.python.org/3/library/constants.html#Ellipsis有介绍。


当我们传递 多个值,应该如何实现呢


from fastapi import FastAPI, Query
from typing import List, Optional
app = FastAPI()
@app.get("/items/")
def read(paword: Optional[List[str]] = Query(None)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if paword:
        results.update({"paword": paword})
    return results


其实很简单,就是传递一个list的参数,那么我们去请求下。


       1.输入两个字测试,


image.png


2.输入两个值测试


image.png


这样满足了我们的需求,我们可以看下接口文档。


image.png


接口文档我们也是可以传递多个参数的。当然我们在query还可以传递很多内容,如:


    alias#别名参数

       

    title#标题

 

    description #描述,会在借口文档有表述

     deprecated#弃用参数

 

还有特定的校验

 

  • min_length
  • max_length
  • regex


相关文章
|
前端开发 中间件 API
FastAPI第二天---参数校验
FastAPI第二天---参数校验
181 0
FastAPI第二天---参数校验
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
|
NoSQL Redis 数据库
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论
FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论