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

FastAPI 参数的作用

        FastAPI是一个现代化的Python web框架,其参数具有重要的作用。在FastAPI中,参数被用于接收HTTP请求中的数据及其它相关信息。

FastAPI支持的参数类型包括:

查询参数(query parameters)

        查询参数是指将参数附加到URL末尾以进行请求的一种技术。查询参数通常用于向Web服务器传递额外的信息,以便服务器可以根据查询参数返回相应的响应。例如,在Google搜索中,查询参数用于传递搜索关键字,而在电子商务网站中,查询参数用于传递商品ID和其他参数,以便显示特定的产品页面。查询参数由一个“?”字符开始,后跟一系列以“&”字符分隔的“名称=值”对,如以下示例所示:

        https://www.example.com/search?q=apple&category=fruit&sort=price&order=desc

        在此示例中,“q”表示搜索关键字,“category”表示商品类别,“sort”表示按价格排序,“order”表示降序排列。服务器可以解析查询参数,并根据这些参数提供定制的响应。

from fastapi import FastAPIapp = FastAPI()@app.get("/items/")
async def read_items(q: str = None):results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}if q:results.update({"q": q})return results

路径参数(path parameters)

        路径参数是指在URL的路径中包含的参数,通常用于指定资源的特定属性或标识符。路径参数与查询参数(query parameters)不同,查询参数是会在问号后面提供的参数,例如`?name=John&age=30`。

例如,以下URL中的`:id`就是一个路径参数:

```
https://example.com/users/:id
```

        这个URL表示一个RESTful API,用于查询用户信息。`:id`是路径参数,表示要查询的用户的唯一标识符。在实际使用时,`:id`将被替换为实际的用户ID。

        使用路径参数可以使URL更加语义化,同时也可以简化API的设计和实现。在处理URL时,路径参数通常由Web框架或路由器自动解析。

from fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")
async def read_item(item_id: int):return {"item_id": item_id}

请求体参数(request body parameters)

        请求体参数(request body parameters)是指在 HTTP 请求中通过请求体(request body)方式传递的参数。通过请求体参数,可以向服务器传递更加复杂、结构化的数据,比如 JSON 格式的数据、XML 格式的数据等。

        对于一些请求,比如 GET 请求,请求参数通常是通过 URL 传递的,而不是通过请求体传递的。但是对于一些请求,比如 POST、PUT、PATCH 等请求,请求体常常用来传递数据(比如表单数据、文件数据等)。

        请求体参数的格式通常由请求体的数据类型(Content-Type)来指定,比如 application/json、application/xml、multipart/form-data 等。在处理请求体参数时,服务器端的应用程序通常需要进行相应的解析和处理,以便正确地获取请求体参数中的数据。

from fastapi import FastAPI
from pydantic import BaseModelapp = FastAPI()class Item(BaseModel):name: strdescription: str = Noneprice: floattax: float = None@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):results = {"item_id": item_id, "item": item}return results

请求头参数(header parameters)

        请求头参数是包含在 HTTP 请求中的元数据,用于描述请求或响应的信息。请求头参数通常包括以下内容:

  • User-Agent:指示发送请求的客户端类型和版本号。
  • Accept:指定客户端需要接受的 MIME 类型。
  • Authorization:用于验证客户端身份的凭证信息。
  • Content-Type:指定请求或响应的 MIME 类型。
  • Cookie:用于识别客户端的会话信息。
  • Referer:指示请求的来源 URL。
  • Host:指示被请求的服务器主机名。
  • If-Modified-Since:用于缓存控制,指示客户端能够接受的最新修改时间。

请求头参数可以帮助服务器更好地处理请求,同时也可以提高通信的安全性和效率。

from fastapi import FastAPI, Headerapp = FastAPI()@app.get("/items/")
async def read_items(user_agent: str = Header(None)):return {"User-Agent": user_agent}

Cookie 参数(cookie parameters)

        Cookie参数是指在设置(或更新)cookie时,可以使用的一些可选参数。这些参数可以用来定义cookie的属性,如过期时间、域、路径、安全标志等。

以下是一些常见的Cookie参数:

  • name:cookie的名称
  • value:cookie的值
  • domain:cookie的域名,指定cookie可以被哪些域名访问
  • path:cookie的路径,指定cookie可以被哪些URL路径访问
  • expires:cookie的过期时间
  • max-age:cookie的最大有效时间,单位为秒
  • secure:指定cookie只能通过HTTPS协议传输
  • httponly:指定cookie只能在HTTP请求中传输,不能通过JavaScript访问

        使用这些参数,可以对cookie进行更加精细的控制,从而提高Web应用程序的安全性和可靠性。

        总的来说,FastAPI的参数处理使得开发者可以快速地对请求数据进行解析和验证,从而更加轻松地编写高效的RESTful API。

参考:FastAPI文档

http://www.lryc.cn/news/155839.html

相关文章:

  • 国内免费无限制的chatgpt导航和ai画画
  • 【USRP】集成化仪器系列2 :示波器,基于labview实现
  • Linux map type uncache 和 write combine区别
  • 【业务功能篇93】微服务-springcloud-多线程-异步处理-异步编排-CompletableFutrue-实战运用
  • 哈希的应用——位图
  • 2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书对外经济贸易大学图书馆
  • 合并两个有序链表(每日一题)
  • React Hooks总览
  • 风向变了!智能汽车何以「降本」
  • 后端面试话术集锦第 十五 篇:java线程面试话术
  • cocos creator配置终端调试
  • 达梦类型转换问题-float转换为varchar
  • 怎么用postman连接websocket
  • 需求分析入门
  • 攻防世界-php_rce
  • 最小生成树Kruskal、Prim算法C++
  • 系统架构设计师-计算机系统基础知识(2)
  • 二叉树的介绍
  • 数据结构与算法复杂度介绍
  • CentOS 安装蒲公英
  • 英语语法基础--思维导图
  • Android泛型详解
  • C++信息学奥赛1178:成绩排序
  • 【计算机视觉 | 目标检测】目标检测常用数据集及其介绍(七)
  • 100天精通Golang(基础入门篇)——第20天:Golang 接口 深度解析☞从基础到高级
  • ESXi 6.7添加螃蟹2.5g网卡支持
  • 机器学习笔记之最优化理论与方法(四) 凸函数:定义与基本性质
  • 【Git】git tag 查看版本号 | 删除本地 | 删除远程仓库| 批量删除
  • thinkphp:数据库查询,嵌套别的表的查询(别的表做子查询)
  • 《Linux 系统命令及Shell脚本实践指南》