当前位置: 首页 > news >正文

奥一农场的网站开发seo软件优化

奥一农场的网站开发,seo软件优化,wordpress搭建企业网站,做网站的费属于什么费用深入解析 FastAPI 查询参数:配置、类型转换与灵活组合 本文全面解析了 FastAPI 查询参数的使用方法,包括配置默认值、设为可选或必选参数、类型转换以及组合使用等实用技巧。通过查询参数,开发者可以在路径操作函数中接收动态输入&#xff0…

深入解析 FastAPI 查询参数:配置、类型转换与灵活组合

本文全面解析了 FastAPI 查询参数的使用方法,包括配置默认值、设为可选或必选参数、类型转换以及组合使用等实用技巧。通过查询参数,开发者可以在路径操作函数中接收动态输入,灵活地构建 API 接口。文章详细说明了如何利用类型转换实现参数的自动解析和校验,同时展示了多个查询参数和路径参数组合使用的示例,为开发高效、灵活的 API 提供了可靠的指导。

文章目录

  • 深入解析 FastAPI 查询参数:配置、类型转换与灵活组合
      • 一 简介
      • 二 设置默认值
      • 三 可选参数
      • 四 查询参数类型转换
      • 五 多个路径和查询参数
      • 六 必选查询参数
      • 七 组合参数
      • 八 完整代码示例
      • 九 源码地址

示例使用 Python 版本为 Python 3.10.15

一 简介

路径操作函数会把非路径参数自动解释为查询参数。示例:

from fastapi import FastAPIapp = FastAPI()fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):return fake_items_db[skip : skip + limit]

代码示例在 chapter03.py 中,运行如下命令:

$ uvicorn chapter03:app --reload

在线 SwaggerUI 文档,访问以下 URL :

http://127.0.0.1:8000/items/?skip=0&limit=10

查询参数为:

  • skip:值为 0
  • limit:值为 10

二 设置默认值

声明方法 async def read_item(skip: int = 0, limit: int = 10)skip=0limit=10 设定默认值。

访问 URL:

http://127.0.0.1:8000/items/

与访问以下地址相同:

http://127.0.0.1:8000/items/?skip=0&limit=10

但如果访问:

http://127.0.0.1:8000/items/?skip=20

查询参数的值就是:

  • skip=20:在 URL 中设定的值
  • limit=10:使用默认值

三 可选参数

默认值设为 None 时,查询参数为可选参数。

from fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")
async def read_item(item_id: str, q: str | None = None):if q:return {"item_id": item_id, "q": q}return {"item_id": item_id}

本例中,查询参数 q 是可选的,默认值为 None

四 查询参数类型转换

参数还可以声明为 bool 类型,FastAPI 会自动转换参数类型:

from fastapi import FastAPIapp = FastAPI()@app.get("/items02/{item_id}")
async def read_item(item_id: str, q: str | None = None, short: bool = False):item = {"item_id": item_id}# 如果 q 有值就更新if q:item.update({"q": q})if not short:item.update({"description": "This is an amazing item that has a long description"})return item

本例中,访问:

http://127.0.0.1:8000/items02/foo?short=1
http://127.0.0.1:8000/items02/foo?short=True
http://127.0.0.1:8000/items02/foo?short=true
http://127.0.0.1:8000/items02/foo?short=on
http://127.0.0.1:8000/items02/foo?short=yes

函数接收的 short 布尔类型参数都会自动转换。

五 多个路径和查询参数

from fastapi import FastAPIapp = FastAPI()@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str, q: str | None = None, short: bool = False
):item = {"item_id": item_id, "owner_id": user_id}if q:item.update({"q": q})if not short:item.update({"description": "This is an amazing item that has a long description"})return item

FastAPI 通过参数名进行检测,声明的查询参数的顺序并不重要。

六 必选查询参数

如果要把查询参数设置为必选,就不要设置默认值。在参数声明中设置默认值则该参数就不是必选参数。把参数设为可选,但又不想指定参数的默认值,则要把值设为 None

from fastapi import FastAPIapp = FastAPI()@app.get("/items03/{item_id}")
async def read_user_item(item_id: str, needy: str):item = {"item_id": item_id, "needy": needy}return item

这里的查询参数 needy 是必选参数。访问 URL :

http://127.0.0.1:8000/items03/foo-item?needy=sooooneedy

响应返回 JSON:

{"item_id": "foo-item","needy": "sooooneedy"
}

七 组合参数

from fastapi import FastAPIapp = FastAPI()@app.get("/items04/{item_id}")
async def read_user_item(item_id: str, needy: str, skip: int = 0, limit: int | None = None
):item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}return item

本例中有 3 个查询参数和 1 个路径参数:

  • needy,必选的 str 类型参数
  • skip,默认值为 0int 类型参数
  • limit,可选的 int 类型参数
  • item_id,必选的 str 类型参数

八 完整代码示例

from fastapi import FastAPIapp = FastAPI()fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):return fake_items_db[skip: skip + limit]@app.get("/items/{item_id}")
async def read_item(item_id: str, q: str | None = None):if q:return {"item_id": item_id, "q": q}return {"item_id": item_id}@app.get("/items02/{item_id}")
async def read_item(item_id: str, q: str | None = None, short: bool = False):item = {"item_id": item_id}# 如果 q 有值就更新if q:item.update({"q": q})if not short:item.update({"description": "This is an amazing item that has a long description"})return item@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str, q: str | None = None, short: bool = False
):item = {"item_id": item_id, "owner_id": user_id}if q:item.update({"q": q})if not short:item.update({"description": "This is an amazing item that has a long description"})return item@app.get("/items03/{item_id}")
async def read_user_item(item_id: str, needy: str):item = {"item_id": item_id, "needy": needy}return item@app.get("/items04/{item_id}")
async def read_user_item(item_id: str, needy: str, skip: int = 0, limit: int | None = None
):item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}return item

九 源码地址

详情见:GitHub FastApiProj

引用: FastAPI 文档

http://www.15wanjia.com/news/29113.html

相关文章:

  • 网站建设深圳赶集网桂林最新消息今天
  • 郑州专业做网站公司专注网络营销推广公司
  • 上海网站备案成功品牌策划案例
  • app开发网上app开发宁波优化推广选哪家
  • 网站制作价格厦门seo搜索引擎优化
  • 招商加盟网站的图应该怎么做投广告的平台有哪些
  • 专门做彩平的网站seo优化6个实用技巧
  • 网站宣传标语优化二十条
  • 公司网站开发费用计入百度推广费用怎么算
  • 教育网站建设计划书百度seo教程
  • 南京企业做网站网站建设有多少公司
  • 青海青海西宁网站建设西地那非能提高硬度吗
  • 青海网站建设哪个最好线上推广有哪些平台效果好
  • 南阳网网站建设专业放心关键词优化参考价格
  • 男女直接做的视频爱奇艺视频网站申请百度账号注册
  • 高校网站建设 调查太原seo排名
  • 邯郸企业做网站电商运营数据六大指标
  • 网站建设的基本流程是什么长春百度关键词优化
  • 一级a做爰片免费网站国语线上商城推广软文
  • wordpress 循环两个交替成都seo外包
  • 怎么做网站导航地图软文推广的好处
  • 网站开发 就业简历模板济南网站优化公司排名
  • 什么做书籍的网站怎么做好销售
  • 怎样做咨询网站免费seo培训
  • 动态网站开发采用的关键技术百度网络小说排行榜
  • 小米官方网站开发版在哪里汕头网站建设方案优化
  • 哪些网站有设计缺点北京企业网络推广外包
  • 南京一站式工程装饰装修网站宁波seo外包公司
  • 连锁店网站建设优化是什么意思?
  • 商城网站建设公司青岛网站关键词排名优化