FastAPI筑基_Day7_彻底吃透三大传参方式
【FastAPI筑基-Day7】彻底吃透三大传参方式路径参数、查询参数、Body请求体参数后端99%场景全覆盖专栏FastAPI 零基础后端实战系列标签FastAPI、Python后端、接口传参、路径参数、查询参数、Body请求体前置学习Day6 FastAPI基础GET/POST、Day5 Pydantic一、前言写后端接口核心工作就是接收参数、校验参数、处理逻辑、返回结果。本文说了什么FastAPI 三种参数传递方式——路径参数Path、查询参数Query、请求体参数Body的原理、写法与适用场景。实现了什么一个涵盖四种传参模式的可运行 FastAPI 项目附带完整代码和真实运行结果。目的是什么学完能分清三种参数的区别面对任何后端接口需求一眼就知道该用哪种传参方式。所有 FastAPI 接口传参总共就三类路径参数Path查询参数Query请求体参数BodyDay7 一次性讲透从此再也不会分不清该用哪种参数二、快速区分三种参数必背参数类型位置常用请求方式典型场景路径参数PathURL 路由路径中GET资源ID、详情查询、删除查询参数QueryURL ? 后面拼接GET分页、筛选、搜索、排序请求体Body请求体 JSONPOST/PUT注册、登录、新增、修改复杂数据FastAPI 接口传参路径参数 Path查询参数 Query请求体 Body路由中用变量名动态接收场景资源定位 / 查详情 / 删数据URL ? 后面拼接键值对场景分页 / 搜索 / 筛选 / 排序请求体 JSON 提交场景注册 / 登录 / 新增 / 修改三、路径参数 Path动态路由适用场景定位某一个具体资源根据ID查详情、根据ID删除数据。语法路由中用{变量名}动态接收函数参数名与路由变量名一致即可。fromfastapiimportFastAPI appFastAPI(titleDay7 路径参数)app.get(/user/{user_id})defget_user_detail(user_id:int):return{user_id:user_id,msg:用户详情查询成功}访问地址http://127.0.0.1:8000/user/1001特点参数写在路由路径里不是?后面支持类型自动校验user_id: int传字母会直接报错一般用于唯一资源定位四、查询参数 QueryURL参数适用场景分页、搜索、筛选、时间范围、排序、可选参数。语法路由固定函数参数带默认值FastAPI 自动识别为 Query 参数。app.get(/user/list)defget_user_list(page:int1,size:int10,keyword:str):return{page:page,size:size,keyword:keyword,msg:用户列表查询成功}访问地址http://127.0.0.1:8000/user/list?page2size20keyword张三特点拼接在?后面键值对形式支持默认值、可选参数适合筛选、分页、搜索类可变参数五、请求体参数 BodyJSON参数适用场景提交复杂数据、注册、登录、新增、修改、传递敏感数据。注意GET 不支持 Body只有 POST/PUT 支持。标准写法结合 Pydantic企业级fromfastapiimportFastAPIfrompydanticimportBaseModel appFastAPI()classUserRegister(BaseModel):username:strpassword:strage:int18city:str|NoneNoneapp.post(/user/register)defregister(user:UserRegister):return{code:200,msg:注册成功,data:user.model_dump()}请求格式Postman / 前端直接传 JSON{username:test,password:123456,age:22,city:深圳}特点参数不暴露在地址栏支持复杂结构、嵌套 JSON、大数据Pydantic 自动校验、自动类型转换六、混合传参真实项目高频写法路径参数 查询参数 混用场景根据用户ID查询某一页的订单数据。app.get(/user/{user_id}/order)defget_user_order(user_id:int,page:int1,size:int10):return{user_id:user_id,page:page,size:size,msg:订单查询成功}访问http://127.0.0.1:8000/user/1001/order?page1size5七、三种参数终极总结工作直接照抄查详情、删数据→ 用路径参数 Path查列表、分页、搜索、筛选→ 用查询参数 Query提交表单、新增、修改、复杂数据→ 用请求体 Body八、完整整合代码可直接运行fromfastapiimportFastAPIfrompydanticimportBaseModel appFastAPI(titleDay7 FastAPI三大传参详解)# ---------------------- 1. 查询参数 ----------------------app.get(/user/list)defuser_list(page:int1,size:int10,name:str):return{page:page,size:size,name:name}# ---------------------- 2. 路径参数 ----------------------app.get(/user/{user_id})defuser_detail(user_id:int):return{user_id:user_id,tip:路径参数查询成功}# ---------------------- 3. 请求体参数 ----------------------classUserReg(BaseModel):username:strpassword:strage:int18app.post(/register)defregister(user:UserReg):return{code:200,data:user.model_dump()}# ---------------------- 4. 混合参数 ----------------------app.get(/user/{uid}/goods)defuser_goods(uid:int,page:int1):return{user_id:uid,page:page}if__name____main__:importuvicorn uvicorn.run(app,host0.0.0.0,port8000)运行后访问http://127.0.0.1:8000/docs四种传参接口全部自动罗列在 Swagger 中可直接点 Try it out 在线调试。实际运行结果 GET /user/1001路径参数 {user_id:1001,tip:路径参数查询成功} GET /user/list?page2size20nametest查询参数 {page:2,size:20,name:test} POST /register请求体参数 {code:200,data:{username:test,password:123456,age:22}} GET /user/1001/goods?page3混合参数 {user_id:1001,page:3}四个接口全部返回正确。注意请求体传参时模型未定义的字段如city会被自动忽略Pydantic 只保留模型中声明的字段。九、Day7 学习总结彻底掌握路径参数的适用场景与写法彻底掌握查询参数的分页筛选业务用法彻底掌握Body 请求体的 JSON 提交规范掌握混合传参的企业级开发常用方式99% 的后端接口传参场景全部覆盖十、下期预告Day8FastAPI 参数高级校验——Query、Path、Body 精细化校验、长度/范围/正则、自定义错误信息写出规范工业级接口

相关新闻

终极指南:如何用青龙脚本自动化你的日常福利任务

终极指南:如何用青龙脚本自动化你的日常福利任务

终极指南:如何用青龙脚本自动化你的日常福利任务 【免费下载链接】huajiScript 滑稽の青龙脚本库 项目地址: https://gitcode.com/gh_mirrors/hu/huajiScript 想要告别繁琐的手动签到和任务操作吗?滑稽青龙脚本库是你的完美解决方案!这…

2026/8/10 13:20:47 阅读更多 →
基于RAG与向量数据库的法律AI咨询平台:从零构建实战指南

基于RAG与向量数据库的法律AI咨询平台:从零构建实战指南

这次我们来看一个结合了AI大模型、向量数据库和即时通讯技术的法律援助在线咨询平台。这个项目不是简单的聊天机器人,而是通过PostgreSQL的pgvector扩展实现法律知识库的智能检索,再结合LLM进行推理生成,最后用WebSocket提供实时交互。对于想…

2026/8/10 13:20:47 阅读更多 →
国密算法在视频监控安全中的应用与实践

国密算法在视频监控安全中的应用与实践

1. 视频监控安全现状与挑战 监控视频作为安防领域的核心数据载体,其安全性问题近年来备受关注。根据行业调研数据显示,超过60%的企事业单位曾遭遇过视频数据泄露或篡改事件。传统监控系统普遍存在三大安全隐患: 传输链路无加密 &#xff1a…

2026/8/10 13:19:47 阅读更多 →

最新新闻

DeiT:数据高效视觉Transformer训练全解析与实战指南

DeiT:数据高效视觉Transformer训练全解析与实战指南

1. 项目概述:从ViT到DeiT,数据效率的破局之路 在计算机视觉领域,Transformer架构的引入无疑是一场革命。Vision Transformer(ViT)的出现,打破了卷积神经网络(CNN)长期以来的统治地位…

2026/8/10 14:16:09 阅读更多 →
终极防撤回解决方案:让微信QQ撤回的消息无处遁形

终极防撤回解决方案:让微信QQ撤回的消息无处遁形

终极防撤回解决方案:让微信QQ撤回的消息无处遁形 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/Git…

2026/8/10 14:16:09 阅读更多 →
浏览器3D建模革命:如何在5分钟内掌握Chili3D的终极入门技巧

浏览器3D建模革命:如何在5分钟内掌握Chili3D的终极入门技巧

浏览器3D建模革命:如何在5分钟内掌握Chili3D的终极入门技巧 【免费下载链接】chili3d A browser-based 3D CAD application for online model design and editing 项目地址: https://gitcode.com/GitHub_Trending/ch/chili3d 想不想在浏览器里就能完成专业的…

2026/8/10 14:16:09 阅读更多 →
C/C++弱符号(Weak Symbol)原理与应用详解

C/C++弱符号(Weak Symbol)原理与应用详解

1. Weak Symbol 的概念与作用 在C/C开发中,Weak Symbol(弱符号)是一种特殊的符号链接属性,它允许我们在程序中定义可以被重写的全局符号。与强符号(Strong Symbol)不同,弱符号不会在链接阶段引发…

2026/8/10 14:16:09 阅读更多 →
GPT Live实战:半小时打造AI共同主持,单人轻松制作双人播客

GPT Live实战:半小时打造AI共同主持,单人轻松制作双人播客

最近在尝试制作个人电台节目时,我遇到了一个有趣的难题:如何一个人营造出双人对话、甚至多人讨论的节目效果?传统的做法要么是精分式地自己和自己对话(效果生硬),要么是提前录制好另一位“嘉宾”的音频进行…

2026/8/10 14:16:09 阅读更多 →
从零构建私有化AI服务平台:开源模型部署与FastAPI工程实践

从零构建私有化AI服务平台:开源模型部署与FastAPI工程实践

最近在技术社区里,关于大语言模型(LLM)的讨论热度不减,尤其是如何高效、低成本地利用这些强大的AI能力。很多开发者和技术爱好者都面临一个共同难题:官方API调用成本高、有频率限制,而开源模型部署又对硬件…

2026/8/10 14:15:09 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →