当前位置: 首页 > 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文档

相关文章:

FastAPI 参数的作用

FastAPI是一个现代化的Python web框架,其参数具有重要的作用。在FastAPI中,参数被用于接收HTTP请求中的数据及其它相关信息。 FastAPI支持的参数类型包括: 查询参数(query parameters) 查询参数是指将参数附加到URL末…...

国内免费无限制的chatgpt导航和ai画画

非常实用的AI网址导航,其实际使用体验非常便捷。该导航系统不仅提供了全面的网站分类和搜索功能,还对每个网站进行了精准的评估和排序。推荐高质量的网站资源,并实时检测网站的安全性,保障用户的上网安全。 总的来说&#xff1a…...

【USRP】集成化仪器系列2 :示波器,基于labview实现

USRP 示波器 1、设备IP地址:默认为192.168.10.2,请勿 修改,运行阶段无法修改。 2、中心频率:当需要生成不同频率单载波的 时候请直接修改中心频率,在运行的时候您 也可以直接修改中心频率。 3、接收增益:…...

Linux map type uncache 和 write combine区别

文章目录 前言一、定义二、隐含区别总结 前言 这段时间被Map Cache Type坑了一次。 GPU的PCI bar地址map成uncache 的还是 write combine? 一、定义 uncache(uc) : map后,CPU读写不经过Cache write combine(wb): map后,CPU读写同…...

【业务功能篇93】微服务-springcloud-多线程-异步处理-异步编排-CompletableFutrue-实战运用

异步处理编排 我们可以在商品详细信息查询的位置实现CompletableFuture的异步编排处理。 根据业务分析:3.4.5数据接口的入参信息需要来源于1数据接口的返回信息,也就是skuid 所以可以设计 1 3 4 5 串行线程 ,而 3 4 5依赖1 ,需要等…...

哈希的应用——位图

文章目录 前言1. 面试题思考2. 位图2.1 位图的概念2.2 思路讲解及代码实现结构定义构造函数set和reset接口实现set和reset测试观察test接口实现test接口测试思考 3. 位图的应用习题1习题2习题3 4. 总结5. 源码5.1 bitset.h5.2 Test.c 前言 前面的文章里我们学习了哈希表&#x…...

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书对外经济贸易大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书对外经济贸易大学图书馆...

合并两个有序链表(每日一题)

“路虽远,行则将至” ❤️主页:小赛毛 ☕今日份刷题:合并两个有序链表 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1: 输入:l1 …...

React Hooks总览

总览 hooks 功能分类具体 hooks具体功能React v18新特性跨端支持数据更新驱动useState定义要在页面中渲染的数据❌✔useReducer定义要在页面中渲染的数据,且这个数据有多种处理逻辑❌✔useSyncExternalStoreconcurrent 模式下,订阅外部 store 的行为&am…...

风向变了!智能汽车何以「降本」

随着软件定义汽车的概念逐步落地,以及底盘、动力、座舱、智驾、车身等不同域(分布式或者混合式)的功能更新迭代和融合,汽车行业正在意识到:底层硬件架构重构的迫切性。 事实上,早在2016年,作为传…...

后端面试话术集锦第 十五 篇:java线程面试话术

这是后端面试集锦第十五篇博文——java线程面试话术❗❗❗ 1. 创建线程的方式 首先呢,Thread类本质上是实现了Runnable接口,代表一个线程的实例。 所以,我们可以编写一个类,继承Thread类,或者直接实现Runnable接口。然后,再重写下~run方法就行了。启动线程的方式就是调…...

cocos creator配置终端调试

在launch.json里添加"preLaunchTask":“CocosCreator compile” 在cocos creator里选择开发者,visual studio code工作流,选择添加编译任务。 添加 settings.json {"files.exclude":{"**/.git": true,"**/.DS_Sto…...

达梦类型转换问题-float转换为varchar

表结构 CREATE TABLE "SYSDBA"."TABLE_2" ( "COLUMN_1" FLOAT, "COLUMN_2" NUMERIC(22,6)) STORAGE(ON "MAIN", CLUSTERBTR) ; 表数据: 查询,将numeric转换为float,再转换为varchar&…...

怎么用postman连接websocket

点击右侧栏的Collections,然后点击旁边的New,然后点击其中的WebSocket Request,然后输入Url,点击Connection,这里需要注意的是Url不能加上http://,因为这个不是http协议。...

需求分析入门

认识管理软件 什么是管理软件 管理软件就是用来辅助企业进行管理的软件,既包括对企业“人、财、物”相关的资产信息的管理,也包括对企业“供、产、销”相关的业务活动信息的管理。管理软件的重点在于管理信息的收集、流转,资源的共享、集成…...

攻防世界-php_rce

原题 解题思路 thinkPHP.0有漏洞,ThinkPHP5.x rec 漏洞分析与复现。本题就是利用漏洞查找。格式是: ?sindex/\think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]命令。 ls查看文件没什么东西,r…...

最小生成树Kruskal、Prim算法C++

什么是最小生成树 连通图: 在无向图中,若从顶点v1到顶点v2有路径,则称顶点v1和顶点v2是连通的。如果图中任意一对顶点都是连通的,则称此图为连通图。 生成树: 一个连通图的最小连通子图称作为图的生成树。有n个顶点的…...

系统架构设计师-计算机系统基础知识(2)

目录 一、存储管理 1、页式存储 2、段式存储 3、段页式存储 二、磁盘管理 1、先来先服务FCFS 2、最短寻道时间优先SSTF 三、文件系统 1、文件基本概念 2、文件的类型: 3、索引文件结构 4、位示图 四、性能指标 五、性能设计 1、阿姆达尔定律 六、性能评估 1、…...

二叉树的介绍

写在前面: 二叉树是数据结构课程中非常重要的内容,我们针对二叉树的概念、性质以及类型展开详细介绍。 一、概念 二叉树(Binary Tree)是n(n>0)个结点的有限集合,该集合或者空集&#xff0…...

数据结构与算法复杂度介绍

目录 一、基本概念 二、时间复杂度 【2.1】时间复杂度概念 【2.2】大O的渐进表示法 【2.3】举例时间复杂度计算 三、空间复杂度 一、基本概念 数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构,散列结构、树…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...