FastAPI从入门到实战(16)——请求参数汇总

news2024/12/21 4:12:50

FastAPI有各种各样的参数,包括:

  • url参数(定义在url中的参数)
  • param参数(使用url后面?xx=xx)定义的参数
  • body参数(在请求主体中携带的json参数)
  • form参数(在请求主体中携带的web表单参数)
  • cookie参数(在请求的cookie中携带的参数)
  • file参数(客户端上传的文件)

1. url参数

from fastapi import FastAPI
app=FastAPI()
app.get("/echo/{text}")    #注意这里text将是函数定义的参数名.
async def getEchoApi(text:str):    #通过定义参数类型可以让fastapi进行默认的参数检查.
    return {"echo":text}

2. param参数

from fastapi import FastAPI
app=FastAPI()
app.get("/echo2/")    #注意这里url上没有定义参数
async def getEchoApi(text:str):    #fastapi会聪明的发现它不是URL参数,然后自动将他识别为param参数.
    return {"echo":text}

localhost:8000/echo2?text=HelloWorld

3. body参数

from fastapi import FastAPI
from pydantic import BaseModel    #fastapi的一个依赖,需要从pydantic中引入
app=FastAPI()
class EchoArgs(BaseModel):    #继承BaseModel
    text:str    #定义一个字符串型参数
app.post("/echo/")    #get同样支持请求体
async def postEchoApi(args:EchoArgs):    #设置刚才定义的参数
    return {"echo":item.text}    #原样返回

在这里插入图片描述

4. form参数

from fastapi import FastAPI,Form    #引入Form用于定义表单参数
app=FastAPI()
app.post("/echo/") 
async def postEchoApi(text:str=Form(None)):    #通过Form设置参数
    return {"echo":text}    #原样返回

5. cookie参数

from fastapi import FastAPI,Cookie
app=FastAPI()
app.post("/echo/") 
async def postEchoApi(text:str=Cookie(None)):
    return {"echo":text}    #原样返回

6. file参数

from fastapi import FastAPI,File,UploadFile    #引入文件相关操作
app=FastAPI()
app.post("/upload/2") 
async def postUploadFile1Api(file:bytes=File(None)):
    ...    #文件相关操作
app.post("/upload/1")
async def postUploadFile2Api(file:UploadFile=File(None)):
     file_path = os.path.join(settings.file_server_base_directory, admin_report_link)
     with open(file_path, "wb") as f:
         while contents := file.file.read(1024 * 1024):
             f.write(contents)
    ...    #文件相关操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1625444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金属冶炼及压延加工制造数字孪生可视化平台,推进行业数字化转型

金属冶炼及压延加工制造数字孪生可视化平台,推进行业数字化转型。随着科技的不断进步和工业的快速发展,金属冶炼及压延加工行业正面临着前所未有的挑战和机遇,数字化转型成为了行业发展的必然趋势。在这个过程中,数字孪生可视化平…

ArcGIS专题图制作—3D峡谷地形

6分钟教你在ArcGIS Pro中优雅完成炫酷的美国大峡谷3D地图 6分钟教你在ArcGIS Pro中优雅完成炫酷的美国大峡谷3D地图。 这一期的制图教程将带我们走入美国大峡谷,让我们一起绘制这张美妙的地图吧!视频也上传到了B站,小伙伴可以去! …

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡(偏爱Saga)->解决方案

【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡->解决方案->底层实现->应用案例 不断有同学问我大厂中实践分布式事务的问题,这里从分布式事务的产生,到强弱一致性与性能的权衡,再到最终落地的解决方案,再到实际的代码实现,再到我工作中实际使用SA…

数据结构篇其一---顺序表

前言 数据结构篇---C语言实现数据结构 C语言的基础知识:数组 函数 结构体 指针 动态内存分配。 顺序表 从数据结构的角度看待数组 int arr[10]; 数组是一个基本的数据结构吗? 这里以一维数组为例。 …

信号捕捉、可重入函数、volatile、SIGCHLD

个人主页:Lei宝啊 愿所有美好如期而遇 信号捕捉 signal 这个函数我们前面关于信号的文章多次提及,这里重点介绍sigaction。 sigaction 只需要看红色框住的属性即可,其余属性我们不使用,不用多管。第一个handler和signal的第二…

Vim学习笔记01~04

第01章: 遁入空门,模式当道 1.什么是vim Vim是一个高效的文本编辑工具,并且可以在编程开发过程中发挥越来越重要的作用。 事实上,有不少编程高手使用他们来进行代码的开发,并且对此赞不绝口。 2.本系列目的 但是让…

图论基础知识 深度优先(Depth First Search, 简称DFS),广度优先(Breathe First Search, 简称DFS)

图论基础知识 学习记录自代码随想录 dfs 与 bfs 区别 dfs是沿着一个方向去搜,不到黄河不回头,直到搜不下去了,再换方向(换方向的过程就涉及到了回溯)。 bfs是先把本节点所连接的所有节点遍历一遍,走到下…

Find My头盔|苹果Find My技术与头盔结合,智能防丢,全球定位

头盔是保护头部的装具,是人们交通中不可或缺的工具。头盔具有保护头部、吸收冲击力、减少伤害风险、提高安全性、防止颅脑损伤等功效作用。头盔能够提供额外的保护,减少头部受伤的风险。在日常出行或进行高风险活动过程中,如骑自行车、骑行电…

http忽略ssl认证

我们在发请求时,会遇到需要ssl证书验证的报错,针对该错误以及所使用的不同的创建连接的方式,进行ssl证书忽略 忽略SSL证书的流程 简介:需要告诉client使用一个不同的TrustManager。TrustManager是一个检查给定的证书是否有效的类…

mybatis的使用技巧9——mysql按年、季度、月、周等不同时间维度查询或分组统计

在实际项目开发过程中,按不同时间维度查询业务数据的操作异常频繁。比较多的操作如支持按时间周期范围做列表数据的筛选,或者是按年月日等维度的图表展示,亦或者是首页的概况,三维大屏的展示等,都离不开不同时间周期查…

Pulsar【部署 02】Pulsar可视化工具Manager安装使用

Pulsar Manager 是一个基于 web 的 GUI 管理和监视工具,可帮助管理员和用户管理和监视租户、命名空间、主题、订阅、代理、集群等,并支持对多个环境进行动态配置。 可视化工具Manager安装使用 1.Docker1.1 拉取镜像并启动1.2 设置用户名密码1.3 登录并添…

kaggle之皮肤癌数据的深度学习测试

kaggle之皮肤癌数据的深度学习测试 近期一直在肝深度学习 很久之前,曾经上手搞过一段时间的深度学习,似乎是做轮胎花纹的识别,当初用的是TensorFlow,CPU版本的,但已经很长时间都没弄过了 现在因为各种原因&#xff…

【提示学习】PromptSync论文问题汇总

文章目录 PromptSync: Bridging Domain Gaps in Vision-Language Models through Class-Aware Prototype Alignment and Discrimination(2024CVPR)1 Introduction2 Related Work2.1 CLIP2.2 TPT 3 Methodology3.1 提出方法PromptSync3.2 类感知原型生成&…

Cgicc搭建交叉编译环境(移植到arm)

Cgicc GUN Project官网连接:Cgicc- GNU Project - Free Software Foundation 1. 下载源码 Cgicc下载地址: [via http] Index of /gnu/cgicc [via FTP] ftp://ftp.gnu.org/gnu/cgicc/ 目前最新版:3.2.20 2. 源码构建原理 一般&#xff…

POCEXP编写—EXP编写实战(1)

TOC 1. 前言 通过上一篇文章的了解,应该都了解了POC是怎么编写的,而且POC和EXP的区别就是POC只能验证漏洞,简单来说就是通过判断特定的响应值来判断是否存在漏洞,而且EXP就需要将响应的内容给返回回来,但是整体在编写…

vue中的mixin(局部混入、全局混入)

一、mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类;Mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂 Vue中的mixin…

低空经济概念

低空经济是指利用低空空域资源,通过低空交通工具和技术创新发展,促进航空产业、旅游、物流、紧急救援等多领域经济增长和产业融合。随着科技的不断进步和航空产业的快速发展,低空经济正逐渐成为全球经济的重要组成部分。 一、低空经济的主要特…

大数据计算引擎中的Calcite

1.Calcite介绍 Calcite是一个动态数据库管理框架,具备数据库管理系统的功能 Calcite具备SQL解析、校验、优化、生成、连接查询等功能 Calcite能够为不同平台和数据源提供统一的查询引擎 2.Calcite能力 比如,对于HBase而言,没有SQL查询的能力…

✨“光纤通信新篇章:BiDi单纤模块的原理与应用”

💡目录 ❓什么是BiDi单纤模块? 🔧BiDi光模块的工作原理 🌟BiDi光模块的优势 🌵BiDi光模块类型介绍 🌠BiDi SFP光模块 🌠BiDi SFP光模块 🌠BiDi X2光模块 🌠BiDi …

科技论文网站:中国科技论文在线

文章目录 1. Intro2. Main3. Cons Evaluation彩蛋:科学素质 这是作者最后一次发这种级别的科普文章 1. Intro 中国科技论文在线是经教育部批准,由教育部科技发展中心主办, 利用现代信息技术手段,打破传统出版物的概念&#xff0c…