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

FastApi的搭建与测试

一、fastapi的安装

1-1、使用pip安装

安装fastapi的语句

pip install fastapi -i https://mirrors.aliyun.com/pypi/simple

因为fastapi启动依赖于uvicorn,所以我们还需要安装uvicorn。

pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple

下面我们来验证一下安装是否成功。

验证

我们创建一个文件,名称叫做main.py。

from fastapi import FastAPIapp = FastAPI()@app.get("/")
async def root():return {"message": "Hello World"}

然后我们执行一个指令:

uvicorn main:app --reload
uvicorn main:app 命令含义如下:main:main.py 文件(一个 Python「模块」)。
app:在 main.py 文件中通过 app = FastAPI() 创建的对象。
--reload:让服务器在更新代码后重新启动。仅在开发时使用该选项。
如果服务器返回了一串结果是:
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [8438] using statreload
INFO:     Started server process [8440]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

打开浏览器访问 http://127.0.0.1:8000。
你将看到如下的 JSON 响应:

{"message": "Hello World"}

交互式 API 文档

跳转到 http://127.0.0.1:8000/docs。

你将会看到自动生成的交互式 API 文档。
在这里插入图片描述

可选参数

通过同样的方式,你可以将它们的默认值设置为 None 来声明可选查询参数:

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

在这个例子中,函数参数 q 将是可选的,并且默认值为 None。

查询参数类型转换

你还可以声明 bool 类型,它们将被自动转换:

from typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")
async def read_item(item_id: str, q: Union[str, None] = None, short: bool = False):item = {"item_id": item_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

这个例子中,如果你访问:

http://127.0.0.1:8000/items/foo?short=1

http://127.0.0.1:8000/items/foo?short=True

http://127.0.0.1:8000/items/foo?short=true

http://127.0.0.1:8000/items/foo?short=on

http://127.0.0.1:8000/items/foo?short=yes

或任何其他的变体形式(大写,首字母大写等等),你的函数接收的 short 参数都会是布尔值 True。对于值为 False 的情况也是一样的。

额外的校验

我们打算添加约束条件:即使 q 是可选的,但只要提供了该参数,则该参数值不能超过50个字符的长度。

导入 Query

为此,首先从 fastapi 导入 Query:

from typing import Unionfrom fastapi import FastAPI, Queryapp = FastAPI()@app.get("/items/")
async def read_items(q: Union[str, None] = Query(default=None, max_length=50)):results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}if q:results.update({"q": q})return results

相关文章:

FastApi的搭建与测试

一、fastapi的安装 1-1、使用pip安装 安装fastapi的语句 pip install fastapi -i https://mirrors.aliyun.com/pypi/simple因为fastapi启动依赖于uvicorn,所以我们还需要安装uvicorn。 pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple下面我们来…...

C++基础——C++面向对象之重载与多态基础总结(函数重载、运算符重载、多态的使用)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…...

调用一个函数时发生了什么?

欢迎来到 Claffic 的博客 💞💞💞 前言: 用C语言写代码,如果一个工程相对复杂时,我们往往会采取封装函数的方式。在主函数中调用函数 这一看似简单的过程,实际上有很多不宜观察的细节&#xff0…...

MindAR的网页端WebAR图片识别功能的图片目标编译器中文离线版本功能(含源码)

前言 之前制作了基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能的demo,使用了在线的图像目标编译器对识别图进行了编译,并实现了自制的WebAR效果,大致效果如下: 但是在线的编译器在操作中也不是很方便,我…...

测试经理:“你做了三年测试,连服务端的接口测试都不会?”

服务端的接口测试我们一般从功能开始进行测试,比如请求参数和响应参数的校验,业务逻辑或业务规则的校验,数据库操作的校验。 功能正常后会根据需要进行安全相关的检查、性能测试以及系列扩展测试,比如与历史版本的兼容性测试、接…...

4G AFR到5G应用场景介绍

前面文章介绍过AFR的机制及流程 AFR机制及流程介绍 (qq.com) GSM AFR到LTE流程...

正电源子 IMX6ULL 自学笔记(驱动开发)

一、字符设备驱动开发 1.1 字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD 等等都…...

AM5728(AM5708)开发实战之移植OpenCV-3.4.11

一 概述 OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux、Windows、Mac OS等操作系统上,它为图像处理、模式识别、三维重建、物体跟踪、机器学习提供了丰富的算法。 由于OpenCV依赖包特别多,尽量不要使用交叉编译,即在什…...

Notepad++ 下载与安装教程

文章目录Notepad 下载与安装教程Notepad 简介一,Notepad 下载二,Notepad 安装Notepad 下载与安装教程 Notepad 简介 Notepad是程序员必备的文本编辑器,Notepad中文版小巧高效,支持27种编程语言,通吃C,C ,Java ,C#, XM…...

005+limou+HTML——(5)HTML图片和HTML超链接

1、图片标签<img> &#xff08;1&#xff09;图片标签属性 [src]&#xff1a;用于指定这个图片所在的路径&#xff0c;常使用相对路径&#xff0c;比较少使用绝对路劲。如果图片路径有错误的话&#xff0c;就会发生图片显示错误[alt]&#xff1a;用于指定图片的提示文字…...

ES6 Generator

Generator Generator是es6引入的&#xff0c;主要用于异步编程。 最大特点是可以交出函数的执行权(即暂停执行)。 它和普通的函数写法有点不同 function关键字与函数名之间有一个*号&#xff0c;以与普通函数进行区别。 它不同于普通函数&#xff0c;是可以暂停执行的。 Gen…...

SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表

绘制一个原创属于自己的YOLO模型性能对比图表 具体绘制操作参考:(附Python代码,直接一键生成,精度对比图表代码 ) 只需要改动为自己的mAP、Params、FPS、GFlops等数值即可,一键生成 多种图表风格📈,可以按需挑选 文章目录 绘制一个原创属于自己的YOLO模型性能对比图…...

linux cpu飙高排查

linux定位cpu飙高原因 jpstop 定位应用进程 pidtop -Hp {pid}找到线程 tid将 tid 转换成十六进制 printf “%x\n” {tid}jstack 打印堆栈信息过滤出我们想要的 jpstop 定位应用进程 pid jps或ps -ef | grep java查看java进程id jps结果&#xff1a; 57152 abc.jar 83383 e…...

2023实习面试公司【二】

2023实习面试第二家公司 文章目录2023实习面试第二家公司前言一、面试官所问的问题&#xff1f;二、总结1.公司待遇2.推荐指数3.自己的感受前言 某岸科技&#xff0c;这家公司是我从拉钩上找的第二家面试公司&#xff0c;也是北京本地的一家公司。 提示&#xff1a;以下是本篇…...

C++ thread_local 存储类

目录标题概述实现场景总结概述 thread_local指示对象拥有线程存储期。也就是对象的存储在线程开始时分配&#xff0c;而在线程结束时解分配。每个线程拥有其自身的对象实例。唯有声明为 thread_local 的对象拥有此存储期。 thread_local 能与 static 或 extern 结合一同出现&am…...

冥想第七百二十三天

1.周日早上跑了5公里&#xff0c;很舒服精力满满的&#xff0c;感谢老婆给我做的饭&#xff0c;鱿鱼面筋腐竹。都非常的好吃。 2.下午13&#xff1a;19分送我到了地铁口&#xff0c;这个点卡的真好&#xff0c;以至于离高铁开车只剩5分钟&#xff0c;14&#xff1a;41发车。到上…...

zookeeper 集群配置

文章目录zookeeper 集群配置1、集群安装zookeeper 集群配置 1、集群安装 1) 集群安装 在 hadoop102、hadoop103 和 hadoop104 三个节点上都部署 Zookeeper。 2) 解压安装 在 hadoop102 解压 Zookeeper 安装包到/opt目录下 输入命令&#xff1a;tar -zxvf apache-zookeeper-3.…...

怎么用消息队列实现分布式事务?

当消息队列和事务联系在一起时&#xff0c;它指的是消息生产者和消息消费者之间如何保持数据一致性。 什么是分布式事务&#xff1f; 事务是指当我们进行若干项数据更新操作时&#xff0c;为了保证数据的完整性和一致性&#xff0c;我们希望这些更新操作要么都成功&#xff0…...

什么蓝牙耳机佩戴舒适?2023长时间佩戴最舒适的蓝牙耳机

现如今&#xff0c;很多蓝牙耳机的产品都在不断地更新&#xff0c;市面上的耳机也是越来越普及&#xff0c;可以说是成为我们日常生活中不可或缺的一类电子设备&#xff0c;下面介绍一些佩戴舒适性好的蓝牙耳机。 一、南卡小音舱蓝牙耳机 音质推荐指数&#xff1a;★★★★★…...

刮刮乐--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例1&#xff1a;刮刮乐 刮刮乐的玩法多种多样&#xff0c;彩民只要刮去刮刮乐上的银色油墨即可查看是否中奖。每张刮刮乐都有多个兑奖区&#xff0c;每个兑奖区对应着不同的获奖信息&#xff0c;包括“一等奖”、“二等奖”、“三等奖”和“谢谢惠顾”。假设现在有一张刮刮乐…...

Win10下ENSP USG6000镜像加载卡在###?别慌,VirtualBox网卡桥接这个设置是关键

Win10下ENSP USG6000镜像加载卡在###的终极解决方案 当你满怀期待地在Windows 10上启动ENSP模拟器&#xff0c;拖入USG6000防火墙设备&#xff0c;却只看到一串无情的 ### 符号时&#xff0c;那种挫败感我深有体会。作为一名曾经被这个问题折磨数小时的网络工程师&#xff0c…...

CANN-昇腾NPU-LoRA微调-显存只占5%怎么做到的

全量微调 Llama2-7B 需要更新 7B 参数&#xff0c;显存开销约 80GB。LoRA 只训练 0.5% 的参数&#xff08;约 35M&#xff09;&#xff0c;显存开销约 4GB。在昇腾NPU上 LoRA 微调是性价比最高的方案。 LoRA 原理 在原始权重 W 旁边加一个低秩矩阵 ΔW A B&#xff1a; 原…...

UFLUX v2.0:融合P模型与XGBoost的GPP估算混合建模框架

1. 项目概述与核心价值如果你正在从事全球变化生态学、碳循环研究或者遥感应用领域的工作&#xff0c;那么“如何更准确地估算陆地生态系统的总初级生产力”这个问题&#xff0c;大概率是你绕不开的挑战。总初级生产力&#xff0c;也就是我们常说的GPP&#xff0c;它衡量的是植…...

使用C#代码在Excel中插入行和列的操作指南

在处理 Excel 电子表格时&#xff0c;随着数据量的增加或项目范围的扩大&#xff0c;通常需要添加新的行或列。通过插入行和列&#xff0c;你可以快速调整工作表的结构&#xff0c;以容纳新的信息。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中实现 Excel 行和列的插入操作…...

ET框架:C#全栈游戏开发的热更与服务端重构实践

1. ET框架不是“又一个Unity网络库”&#xff0c;而是重构服务器开发范式的底层工具链很多人第一次看到“ET框架”四个字&#xff0c;下意识会把它归类为“Unity里用的Socket封装库”或者“带点RPC味道的通信中间件”——这种理解偏差&#xff0c;恰恰是踩坑的起点。我2018年在…...

从文本到流程:NLP与LLM驱动的业务流程模型自动提取技术

1. 项目概述与核心价值在业务流程管理&#xff08;BPM&#xff09;的日常工作中&#xff0c;我们经常遇到一个经典难题&#xff1a;业务部门或客户给出一大段文字描述&#xff0c;比如一份操作手册、一封需求邮件或一次会议纪要&#xff0c;我们需要从中梳理出清晰、可执行的业…...

行列式点过程:从统计独立到负依赖的机器学习范式跃迁

1. 项目概述&#xff1a;从统计独立到负依赖的范式跃迁在机器学习和统计学的工具箱里&#xff0c;统计独立性长期以来扮演着基石的角色。从朴素贝叶斯分类器的特征条件独立假设&#xff0c;到蒙特卡洛方法中独立同分布的采样点&#xff0c;再到随机梯度下降中独立的小批量数据&…...

芯片设计文档查找与管理指南

1. 逻辑IP/标准单元/平台用户指南查找指南作为一名芯片设计工程师&#xff0c;我经常需要查阅各种工艺库和IP核的文档。最近有同事问我&#xff1a;"为什么在Logic IP库下载包里找不到用户指南&#xff1f;"这其实是个常见问题&#xff0c;我来分享一下我的经验。在芯…...

别再手动标注了!:2026年唯一支持零样本Schema自演化+跨源实体对齐的3款工具深度拆解(含API调用成本对比)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;别再手动标注了&#xff01;&#xff1a;2026年唯一支持零样本Schema自演化跨源实体对齐的3款工具深度拆解&#xff08;含API调用成本对比&#xff09; 当企业每天接入17类异构数据源&#xff08;CRM、IoT边缘…...

市面上靠谱的ERP/MES/定制开发/APP开发/软件开发公司

在数字化浪潮下&#xff0c;80%的实体企业都想通过ERP、MES或定制软件实现降本增效&#xff0c;但选对服务商比“买系统”更重要——用模板化系统的企业&#xff0c;70%会因为流程适配差、运维跟不上而半途而废&#xff1b;找外包开发的企业&#xff0c;又面临“开发完就甩手”…...