FastAPI系列(02):第一个示例

news/2026/1/22 21:21:51/文章来源:https://www.cnblogs.com/uncleyong/p/19475413

 


本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/19503695

 

python环境

python

image

 

pycharm

image

  

FastAPI安装

pip install fastapi

安装后就包好了pydantic、starlette

image

 

另外,FastAPI 推荐使用 uvicorn 来运行服务(Uvicorn 是基于 uvloop 和 httptools 构建的闪电般快速的 ASGI 服务器),所以还需要安装uvicorn

pip install uvicorn
 

示例及解释

步骤

(1)导入FastAPI
(2)创建一个 app 实例
(3)编写一个路径操作装饰器(如 @app.get("/"))
(4)编写一个路径操作函数(如下面的 def home(): ...)
(5)定义返回值
(6)运行开发服务器(如:uvicorn main:app --reload)

  

示例

from fastapi import FastAPI  # FastAPI是一个为API提供了所有功能的Python类app = FastAPI()  # app这个实例是创建你所有API的主要交互对象。这个app也会被uvicorn所引用@app.get("/")
def home():return {"msg": "welcome"}@app.get("/shop")
def shop():return {"shop": "商品信息"}

  

启动服务:命令方式

uvicorn quickstart:app --reload
quickstart:文件quickstart.py
app:quickstart
--reload: 热启动,代码修改后服务会自动重启,方便代码的开发

image

 

请求

image

 

启动服务:直接启动

from fastapi import FastAPI
import uvicornapp = FastAPI()@app.get("/")
def home():return {"msg": "welcome"}@app.get("/shop")
def shop():return {"shop": "商品信息"}if __name__ == '__main__':uvicorn.run("quickstart:app", port=8001, reload=True)

  

run方法的可选参数很多,还有host等

image

 

image

 

image

 

交互式API文档

fastapi有着非常棒的交互式API文档,基于 OpenAPI 规范,能自动生产交互式API文档,支持 Swagger UI 和 ReDoc 两种交互式界面

Swagger UI

http://127.0.0.1:8001/docs

image

 

接口调试

点击“Execute”

image

 

点击“Execute”

image

 

ReDoc

http://127.0.0.1:8001/redoc

image

 

 

 

 

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

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

相关文章

心愈语伴:DeepSeek+Qwen2.5打造专属情感聊天工具全教程

目录标题 一、工具核心架构与技术选型1.1 核心设计逻辑1.2 技术栈清单 二、前置准备:环境搭建与资源获取2.1 安装基础依赖2.2 获取DeepSeek API Token2.3 本地部署Qwen2.5-3B模型 三、核心开发:从接口封装到情感协同3.1 封装DeepSeek情感分析接口3.2 封装…

2026年会议纪要工具top9_工具_测评_ASR

2024 年高效语音处理方案推荐根据 IDC《2023 年中国人工智能语音转文字应用市场白皮书》,2023 年中国语音转文字市场规模达 87.6 亿元,同比增长 34.2%,企业级用户对实时转写、多语言支持的需求同比提升 41%。从微观来看,传统会议记…

Vue3+Cesium教程(38)--动态雾浓度、颜色

本学习系列以Cesium Vue3 Typescriptelementplus作为主要技术栈,后续会循序渐进,持续探索Cesium的高级功能,敬请期待。欢迎关注威信公众号“webgis学习”。详情请查阅原文 Vue3Cesium教程(38)--动态雾浓度、颜色https://mp.weixin.qq.com/s…

一天一个Python库:requests - 简单好用的HTTP请求库

requests - 简单好用的HTTP请求库 一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你:轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域…

Vue3+Cesium教程(37)--下雪啦!动态设置降雪效果

本学习系列以Cesium Vue3 Typescriptelementplus作为主要技术栈,后续会循序渐进,持续探索Cesium的高级功能,敬请期待。详情请查阅原文 Vue3Cesium教程(37)--下雪啦!动态设置降雪效果https://mp.weixin.qq.com/s/5RFjzPKzkVLy_7h…

星瞳OpenMV官方机械臂教程|从零开始:Robot Arm机械臂快速上手

欢迎观看OpenMV官方机械臂的第一期教程!本期将带你快速了解机械臂并掌握基础操作。 看完后,你就能开始创建自己的专属项目啦! OpenMV官方机械臂教程|从零开始快速上手*具体教程和源码可在星瞳科技OpenMV官网[OpenMV.cc]查看哦! …

【docker部署milvus向量库和可视化界面attu】

docker compose部署milvus和attu 一、配置docker镜像源1.配置镜像源2.重启Docker服务3.验证是否生效 二、docker部署milvus和可视化界面attu1.创建目录结构2.创建docker-compose.yml文件 4.通过docker compose命令快捷管理容器 一、配置docker镜像源 1.配置镜像源 Docker的配…

PX4中关于GPS质量检测和相关控制参数

一、PX4关于GPS质量检测的相关参数 PX4官方参数树:参数参照表 | PX4 Guide (main) 1、EKF2_GPS_CHECK (INT32): Integer bitmask controlling GPS checks Comment: Each threshold value is defined by the parameter indicated next to the check. …

PX4导航遇到GPS数据丢失的处理和相关控制参数

PX4导航时GPS数据丢失的处理 1. GPS数据丢失的检测与驱动层处理 PX4的检测:GPS驱动通过poll()系统调用轮询接收数据,当超过1秒无有效数据时标记为不健康(_healthyfalse)重连:驱动会关闭并重启串口,在参数中…

Java小白求职者面试:从Spring Boot到微服务架构设计的问答解析

场景描述 超好吃是一位初入职场的Java程序员,今天他来到一家互联网大厂,面试官是一位严肃且经验丰富的技术专家。这次面试以内容社区与UGC为业务场景,展开了关于Spring Boot、微服务架构设计和安全框架的技术问答。第一轮:基础知识…

day162—递归—买卖股票的最佳时机Ⅱ(LeetCode-122)

题目描述给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。然而,你可以在 同一天 多次买卖该股票,但要确保你持有的股票不…

day163—递归—买卖股票的最佳时机含冷冻期(LeetCode-309)

题目描述给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股…

Jupyter Notebook的5个实用技巧,可视化模型训练过程

一、5个实用技巧:从“黑箱训练”到“可视化调试” 技巧1:用LiveLossPlot实时绘制训练损失曲线 痛点:训练时需手动记录损失值,无法实时观察模型收敛趋势。解决方案: python# 安装:pip install livelossplo…

send-proxy vs send-proxy-v2 vs send-proxy-v2-ssl

send-proxy vs send-proxy-v2 vs send-proxy-v2-ssl下面我严格按你的要求结构来,不跳步、不混概念:先对比 send-proxy / send-proxy-v2 / send-proxy-v2-ssl(结合你的场景)明确在 LVS TOA → HAProxy → Nginx 的正…

完整教程:Spring Boot 中的定时任务:从基础调度到高可用实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

北京汽车美容哪里好?五方天雅汽车服务园全面评测

在汽车保有量持续增长的北京,汽车美容服务已成为车主们日益关注的话题。面对市场上众多的服务选择,许多车主往往感到迷茫:哪里才是靠谱、专业、性价比高的汽车美容服务聚集地?今天,我们就以一个中立、客观的第三方视角…

通过pm2以cluster模式多进程部署next.js

一、介绍 Next.js 是一个强大的 React 框架,用于构建静态和服务器渲染的 React 应用程序。PM2 是一个带有内置负载均衡器的 Node.js 进程管理工具,它允许我们在多核服务器上运行多个 Node.js 实例。结合 Docker,可以…

学霸同款8个一键生成论文工具,研究生高效写作必备!

学霸同款8个一键生成论文工具,研究生高效写作必备! 论文写作的“隐形助手”:AI 工具如何改变研究生的学习节奏 在当今学术研究日益复杂的背景下,研究生们面临着前所未有的挑战。无论是论文选题、文献综述,还是数据整理…

Jetson 磁盘加密自动解锁全链路:initrd / nvluks-srv-app / OP-TEE TA / EKB 一次讲清

📺 B站视频讲解(Bilibili):博主个人介绍 📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程 📘 加博主微信,进技术交流群: jerrydev Jetson 磁盘加密自动解锁全链路:initrd / nvluks-srv-app / OP-TEE TA / EKB 一次讲清 关键词:LUKS2、dm-crypt、initr…

2026医疗级弹力袜如何选择?medi迈迪专业测评与多品牌对比指南

在现代生活中,长时间站立、久坐办公、孕期负担或高强度运动,都让下肢静脉健康成为越来越多人关注的话题。医疗级弹力袜(也称静脉曲张袜)作为一种科学、有效的预防与辅助治疗工具,正逐渐走入大众视野。面对市场上众…