新闻详情

新闻详情

首页 / 资讯中心 / 详情

FastAPI python web开发- 路由与参数(路径参数查询参数请求体参数)

发布时间:2026/11/1 6:31:30来源:尧图网络
FastAPI python web开发- 路由与参数(路径参数查询参数请求体参数)
大家好我是Java1234_小锋老师最近更新《2027版 一天学会 FastAPI Python web开发 视频教程(无废话版)》专辑感谢大家支持。本课程主要介绍和讲解FastAPI简介HelloWorld实现自动生成交互式API文档路径参数查询参数请求体参数校验响应模型表单数据和模型中间件依赖注入集成SQLAlchemy ORM 操作数据库集成Pydantic数据校验等视频教程课件源码打包下载链接https://pan.baidu.com/s/1_NzaNr0Wln6kv1rdiQnUTg提取码0000路由与参数路径参数查询参数请求体参数简单来说路由Routing就是“根据请求找对应代码”的映射关系。在 Web 开发中它可以拆解为三个核心要素的绑定请求方法GET、POST、PUT 等URL 路径如/users、/items/123处理函数执行具体业务逻辑的代码路由的本质就是定义一张“查找表”当客户端用“方法 A”访问“路径 B”时服务器自动执行“函数 C”。以下是 FastAPI 中路径参数、查询参数和请求体参数的详细对比表格帮你从定义、位置、用途到代码写法一目了然对比维度路径参数 (Path Parameters)查询参数 (Query Parameters)请求体参数 (Request Body)定义是什么URL路径中固定占位的动态变量用于定位具体资源。URL路径? 之后的键值对用于过滤、排序或分页。放在 HTTP请求体Body中的完整数据通常为 JSON 格式。在 URL 中的位置属于路径的一部分例如/users/123属于路径末尾的查询字符串例如/users?age18page1不在 URL 中位于请求报文的独立数据区域浏览器看不到。常用 HTTP 方法所有方法GET、POST、PUT、DELETE主要是GET请求也可用于 DELETE主要是POST、PUT、PATCHGET 强烈不推荐带 Body典型使用场景指定特定资源 获取 ID 为 123 的用户或修改 ID 为 5 的文章。筛选和辅助 查询第 2 页、每页 10 条、按价格排序。提交复杂数据 注册新用户包含用户名、密码、邮箱等完整对象或编辑一篇文章的全文。数据复杂度简单数据类型int、str、UUID简单数据类型int、str、bool、float复杂结构嵌套对象、数组通常用 Pydantic 模型定义是否必须传递必须URL 中缺了它路由无法匹配直接报 404非必须可选除非你显式声明为必填...取决于业务逻辑通常业务需要时必填但框架层面默认可选。数据安全性较高只暴露资源 ID较低明文显示在浏览器地址栏易被收藏/记录不传敏感信息高数据在 Body 中适合传输密码、身份证号等隐私内容在 FastAPI 中的定义方式写在路径字符串的{}中app.get(/users/{user_id})函数参数同名即可。定义为非路径参数的函数参数def list(skip: int 0)定义为Pydantic 模型类型def create(item: Item)其中Item继承自BaseModel能否在函数参数中省略类型注解可以但强烈建议加上方便数据自动转换和校验。可以但不加注解会被视为str类型。必须使用类型注解否则 FastAPI 会把它当作查询参数。路径参数路径参数URL 路径中的可变部分用于定位具体资源**如/users/123中的123。我们看一个实例# -------- 1. 路径参数 -------- app.get(/users/{user_id}) async def get_user(user_id: int): 路径参数必须提供用于获取特定用户 return {user_id: user_id, name: f用户_{user_id}}然后打开浏览器访问http://127.0.0.1:8000/docs进行测试查询参数查询参数URL 问号后面的键值对用于过滤、排序、分页如/items?start10limit20。我们看一个实例# -------- 2. 查询参数 -------- app.get(/items) async def list_items(skip: int 0, limit: int 10): 查询参数可选用于分页 return {skip: skip, limit: limit, items: [item1, item2]}然后打开浏览器访问http://127.0.0.1:8000/docs进行测试请求体参数请求体参数HTTP 请求体Body中携带的数据通常是 JSON用于提交/修改复杂数据如注册新用户。我们看一个实例# -------- 3. 请求体参数 -------- class ItemCreate(BaseModel): name: str price: float ​ app.post(/items/) async def create_item(item: ItemCreate): 请求体参数POST 时传入 JSON return {message: Item created, item: item}然后打开浏览器访问http://127.0.0.1:8000/docs进行测试
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/1 1:42:41

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/1 2:34:07

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/1 2:01:57

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/1 3:13:10

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/1 2:11:52

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/1 3:23:38

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉