fastapi 处理请求参数整理

1、路径参数

@app.get("/getfilecontent/{id}/{pre}")
def get_filecontent(id,pre):
    """
    路径参数,测试接口,读取当前工作目录下的file.txt文件,返回txt中的内容
    
    :param id: The ID of the item to retrieve.
    :param pre: An optional query parameter.
    """
    with open('file.txt', 'r') as f:   
        content = f.read()  
    logger.info("start2")
    return {"Hello": content}

限制允许的值

例1:
class UserType(str,Enum):
	STANDARD="standard"
	ADMIN="admin"
例2:
async def get_user(type:UserType,id:int)
ge 大于或等于

2、查询参数

@app.get("/users")
def get_users(page:int=1,size:int=10):
    """
    查询参数,测试接口
    :param page: The ID of the item to retrieve.
    :param size: An optional query parameter.
    """
    return {"Hello": size}

3、主体数据

例1:

from fastapi import Body
@app.post("/userstest")
async def create_usertest(name:str=Body(...),age:int=Body(...)):
    return{"name":name,"age":age}

用postman测试,如下:
在这里插入图片描述
例2:

class Item(BaseModel):
    name: str
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None
@app.post("/itemes/")
async def create_iteem(item: Item):
    """主体数据 测试 原始的(raw) body中负载json 但是使用了pydantic,避免了上述冗长"""
    return item

在这里插入图片描述

4、表单数据和文件上传

(1)表单数据

from fastapi import Form
@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
    """表单数据 测试"""
    return {"username": username}

在这里插入图片描述
(2)文件上传

pip install python-multipart。

from fastapi import FastAPI, File,UploadFile,Response
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    logger.info("start")
    try:
        with open(file.filename, "wb") as local_file:
            local_file.write(file.file.read())
        return JSONResponse(content={"message": "File uploaded and saved successfully 上传成功,定位成功"})
    except Exception as e:
        logger.info(str(e))
        return JSONResponse(content={"message": f"An error occurred: {str(e)}"}, status_code=500)
    return {"filename": file.filename}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决使用傅里叶变换开源库fftw分析音频频谱结果与matlab或audacity不一致的问题

找的一些demo输出结果与实际结果相差巨大,修复后效果如下: 采用一个采样率48000,精度16bit,单通道的46Hz,振幅为32767的正弦波测试(理论上应该得输出一个一模一样的正弦波)。输出如下图,可以看…

工业5G路由器提升驾考效率,实现智慧驾考物联网

为了提高驾考的考试效率,更好地服务广大学员,车管所驻考场监控中心结合物联网技术采用智慧驾考系统,实现考场监控、考试员远程监考、学员视频实时回传、自动评判等功能,为驾考公平公正安全提供保障。 该系统由智能监控管理平台和…

百模大战中的AI行业:新趋势与未来发展

文章目录 每日一句正能量前言技术进步应用拓展行业变革人才竞争后记 每日一句正能量 人生最重要的价值是心灵的幸福,而不是任何身外之物。 前言 随着科技的迅猛发展,人工智能(AI)已经成为引领技术革命的重要驱动力之一。在当前的…

使用Java实现合并两个数组[归并排序]

package org.example;import java.util.Scanner;public class incorporateSort {public static void main(String[] args) {Scanner scannernew Scanner(System.in);System.out.println("请输入第一个数组的长度和元素(数组内部必须为升序)");int len1scanner.nextIn…

基于Java SSM框架实现宜百丰超市进销存购物商城系统项目【项目源码+论文说明】

基于java的SSM框架实现宜百丰超市进销存购物商城系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被…

协作机器人(Collaborative-Robot)安全碰撞的速度与接触力

协作机器人(Collaborative-Robot)的安全碰撞速度和接触力是一个非常重要的安全指标。在设计和使用协作机器人时,必须确保其与人类或其他物体的碰撞不会对人员造成伤害。 对于协作机器人的安全碰撞速度,一般会设定一个上限值&…

Chart.js:灵活易用的图表库 | 开源日报 No.121

chartjs/Chart.js Stars: 61.3k License: MIT Chart.js 是一个简单而灵活的 JavaScript 图表库,适用于设计师和开发者。 灵活性:Chart.js 提供了丰富多样的图表类型和配置选项,使用户能够根据自己的需求创建各种定制化的图表。易用性&#…

Linux入门攻坚——9、Linux程序包管理-1

Linux程序包管理(1) 如何在Linux上安装、查询、卸载、升级程序(对于使用者很重要的知识点,使用Linux就是要使用其上的程序,如果程序都安装不上,谈何使用) 程序从源代码到最终能够执行的代码需…

SWUST-会理财的小明

一波操作之后我发现我在乱写,发现原来利息是这样算的 然后我一波操作之后发现也不是这样算的。原来利息是这样算的 原来是幂运算! 什么东西。。。 原来总金额就是本金*(1利率)^年限。利息就是总金额-本金!&#xff01…

2023.12.18 制作py,shell脚本进行数据库操作与定时任务

目录 虚拟机中已有的两个库: bi_db和shopnc_db 1.在pycharm中,使用pymysql,连接数据库进行增删改查操作 1.1 查询 1.2 修改 1.3 删除 1.4 增加 2.使用pandas,操作pycharm对数据库进行操作 2.1 对mysql进行覆盖写入 2.2 对mysql进行追加写入 3.在linux中,进行自动化定…

ardupilot开发 --- 风机不停机巡检 篇

在哪里创建的siyi实例? 如何传递飞控的时间戳给siyi相机? AP_RTC_ENABLED在waf编译时配置为1?? 如何配置? 在lua脚本中如何获取这个时间AP::rtc().get_utc_usec(utc_usec)??? inclu…

FPC柔性排线用什么胶水能固定到线路板上?

为了固定FPC柔性排线到线路板上,可以使用特殊用于电子组装的胶水。常用的胶水类型有: 1.氰基丙烯酸酯胶水(Cyanoacrylate) 被称为“超级胶水”或“快干胶水”。这种胶水对FPC通常有很好的附着力。 2.环氧树脂胶水 环氧树脂胶水…

c 试水解码jpeg图片比特流

找到一张采用霍夫曼通用DC,AC编码表的图片,提取出此图片的比特流准备对它解码,再反推怎样编码。 下图是此图片比特流前100个字节。解码是每次读一字节,对这8比特解码,如8比特不能解码,再读入一字节。因为霍夫曼表最多…

html/css实现简易圣诞贺卡

一、前言 HTML,全称HyperText Markup Language,即超文本标记语言,是用于创建网页的标准标记语言。HTML是一种标记语言,由一系列的元素标签组成,用于描述网页的结构和内容。 CSS,全称是“层叠样式表”&#…

Solon 开源框架,单月下载突破 250 万!!!

Solon 是什么开源项目? 一个,Java 生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(历时六年,已有全球第二级别的生态规模)。与其他框架相比,它解决了两个重要的痛点&#xff…

linux下的进程组与会话的区别

进程组(Process Group)和会话(Session)是Unix/Linux操作系统中的两个概念,它们之间有一些关键区别: 定义和范围:一个进程组是一组相关进程的集合,它们具有相同的进程组ID&#xff08…

变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整

一、说明 在深入研究第 1 部分中的介绍和实现,并在第 2 部分中探索训练过程之后,我们现在将重点转向在第 3 部分中通过超参数调整来优化模型的性能。要访问本系列的完整代码,请访问我们的 GitHub 存储库在GitHub - asokraju/ImageAutoEncoder…

最新国内免费使用GPT4教程,GPT语音对话使用,Midjourney绘画

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GP…

JS模块化规范之ES6及UMD

JS模块化规范之ES6及总结 前言ES6模块化概念基本使用ES6实现 UMD(Universal Module Definition)总结 前言 ESM在模块之间的依赖关系是高度确定的,与运行状态无关,编译工具只需要对ESM模块做静态分析,就可以从代码字面中推断出哪些模块值未曾被…

在 Windows 上恢复已删除文件的 9 种简单方法

本教程讨论永久丢失数据的原因以及在 Windows上恢复已删除文件的不同方法: 数据是提供给系统的任何形式的信息。它可以是从密码到记事本文件的任何内容。数据是当今世界的关键要素,因为它使我们的生活变得轻松。 我们每天都变得越来越依赖数据&#xf…