3. FastAPI 开发 GET 请求,queryparams查询参数
前言
HTTP协议中,GET请求的参数放在 URL 后面,一般也叫query params 查询参数。
查询参数
# -*- coding:utf-8 -*-
from fastapi import FastAPI # 导入FastAPI
import uvicorn # uvicorn:主要用于加载和提供应用程序的服务器
from enum import Enum
app = FastAPI() # 创建一个app实例
data = ["北京", "上海", "广州", "深圳"]
@app.get("/items")
async def read_item(start: int = 0, end: int = 4):
return data[start: end]
if __name__ == '__main__':
uvicorn.run(app='demo001:app', host="127.0.0.1", port=8000, reload=True, debug=True)
默认规定了两个参数,一个是start另一个是end,初始值是0和4,看下请求结果, Data 中的四个值都会返回回来。
增加参数看一下响应的结果,end=3,返回三个值。
需求1:要实现 start 必填,end 非必填
# -*- coding:utf-8 -*-
from fastapi import FastAPI # 导入FastAPI
import uvicorn # uvicorn:主要用于加载和提供应用程序的服务器
from typing import Optional
app = FastAPI() # 创建一个app实例
data = ["北京", "上海", "广州", "深圳"]
@app.get("/items")
async def read_item(start: int = 0, end: Optional[int] = None):
if end: # 如果输入end,则返回下一行 data[start: end];否则返回 data[start: -1]
return data[start: end]
return data[start: -1] # 默认返回到最后一个,-1 表示最后一个
if __name__ == '__main__':
uvicorn.run(app='demo001:app', host="127.0.0.1", port=8000, reload=True, debug=True)
看一下效果,不输入 end
需求2:对输入的参数进行长度限制,限制长度 2-8位。
from fastapi import FastAPI, Query
import uvicorn
app = FastAPI()
@app.get("/items/")
def read_items(name: str = Query(..., min_length=2,max_length=8)):
results = {"items": [{"id": "001"}, {"name": "tester"}]}
if name:
results.update({"name": name})
return results
if __name__ == '__main__':
uvicorn.run(app='demo001:app', host="127.0.0.1", port=8000, reload=True, debug=True)
- 当使用 Query 且需要声明一个值是必需的时,可以将 ... 用作第一个参数值。
- min_length :最小长度
- max_length :最大长度
1. 看结果,输入合法值。
- 输入不合法的值,输入 1 位。
- 输入不合法的值,输入 9 位。
分类:
FastAPI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2018-03-07 (四)、Fiddler打断点