官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/query-params-str-validations/

# -*- coding: UTF-8 -*-
from fastapi import FastAPI, Query
from typing import List app = FastAPI()
#########################################################
# 限制长度
@app.get("/items/")
async def read_items(q: str = Query(..., min_length=3, max_length=50)):
#填None就是默认值 填 ...则是必填项
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
#########################################################
#正则表达式
@app.get("/items2/")
async def read_items2(
q: str = Query(None, min_length=3, max_length=50, regex="^nice")
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
#########################################################
#列表
@app.get("/items3/")
async def read_items3(q: List[str] = Query(["foo", "bar"])):
query_items = {"q": q}
return query_items
#########################################################
#别名参数
@app.get("/items4/")
async def read_items4(q: str = Query(None, alias="item-query")):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
#########################################################
#弃用参数
@app.get("/items5/")
async def read_items5(
q: str = Query(
None,
alias="item-query",
title="Query string",
description="Query string for the items to search in the database that have a good match",
min_length=3,
max_length=50,
regex="^fixedquery$",
deprecated=True,
)
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
######################################################### if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)

最新文章

  1. 浅谈Collection集合
  2. 关于z-index鲜为人知的事情
  3. [Search Engine] 搜索引擎技术之查询处理
  4. 蚁群算法简介(part2: 蚁群算法之构造路径)
  5. JVM参数(一)JVM类型以及编译器模式
  6. [Android] emualtor-5554 offline的解决方法
  7. 双端队列(单调队列)poj2823 区间最小值(RMQ也可以)
  8. Kafka架构设计:分布式发布订阅消息系统
  9. 经典 Linux & VIM 教程
  10. 基础巩固(二)- log4j的使用
  11. vc++深入跟踪MFC程序的执行流程
  12. OpenGL绘制环形渐变
  13. Logback相关知识汇总
  14. Eclipse 取消import自动补全具体的类名
  15. MVVM Light须要注意的10个问题
  16. forEach用法介绍
  17. 解决shiro和quartz2 版本冲突问题
  18. OpenShift实战(一):OpenShift高级安装
  19. Spark累加器(Accumulator)陷阱及解决办法
  20. 关于memset赋值问题

热门文章

  1. 字符串压缩(二)之LZ4
  2. PostgreSQL的查询技巧: 零除, GENERATED STORED, COUNT DISTINCT, JOIN和数组LIKE
  3. 一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径
  4. samba打开一个文件的函数调用栈
  5. Josephus问题(Ⅲ)
  6. 009 面试题 SQL语句各部分的执行顺序
  7. Java中修饰符的分类及用法
  8. VIM编辑器的宏操作
  9. Thymeleaf是什么?该如何使用。
  10. Python3的原生协程(Async/Await)和Tornado异步非阻塞