尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
FastAPI学习日记————Day02
1. 认识FastAPI1.1 什么是FastAPIFastAPI就是一个现代化的web框架他基本上的工作流程我总结了一个例子我通过网页来发送 http 请求比如我想搜索一个新闻然后我发送了一个搜新闻的 http 请求fastapi 接收到了我这个请求分离出了我请求里面的地址然后运行 fastapi 里面的函数然后生成信息最后包装成 http 响应在把 http 响应回到网页网页通过这个 http 响应打印出 fastapi 里面的信息给我看这就是FastAPI的大体流程!1.2 基础代码认识和Hello Worldfrom fastapi import FastAPI # 1. 实例化 FastAPI 对象 app FastAPI() # 2. 路径操作装饰器 # 含义当客户端以 GET 方法访问根路径 / 时运行下方的函数 app.get(/) async def read_root() - dict: # 3. 路径操作函数 # 直接返回字典FastAPI 会自动转换为 JSON return {message: Hello World}app FastAPI() 创建一个FastAPI的操作对象.get HTTP方法见上一个博客有四种方法分别对应增删改查/请求路径async异步处理函数一般fastapi都使用异步处理函数还有一个await关键字也很重要运行后可以在 http://127.0.0.1:8000/docs 中可视化的操作你的fastapi页面2. FastAPI的核心交互————请求交互重点2.1 路径参数Path Parameters路径参数就是写在上面 / 这个请求路径里面用于去定位所需要的资源比如说你想要去第几本书或者想看第几个新闻你就可以输入路径参数来定位你想要的信息#路径参数代码实例查找图书 app.get(/book/{book_id}) async def get_book(book_id: int): return f你找到了第{book_id}本书打开 http://127.0.0.1:8000/book/参数 这个参数就是路径参数输入你想要的“书号”你就可以得到你想找的“书”2.2 查询参数Query Parameters参数声名在函数参数中但是不在路径中的参数就是查询参数。最后会出现在URL中后搜索 翻页—— 这是查询参数最典型的应用场景。生活化例子搜索图书网址长这样/search?keywordPythonpage2size10?后面就是查询参数keywordPython、page2、size10多个参数用连接。含义是搜 Python 关键词看第 2 页每页 10 条。#搜索参数代码实例翻页和查找 app.get(/page) async def get_page(keyword:str , page: int, limit:int 10): # limit :int 10 代表一页最多显示10行信息所以提前赋值. # 但是你想看多少页page和你想看什么类型的书keyword现在不知道所以只定义数据类型不赋值 return {关键词: keyword, 页码: page, 每页条数: limit}这个keyword和page的值就是需要你在网页上去输入的值了这里只提供一个数据接口。2.3 请求体核心结论路径参数 告诉服务器 找哪本书资源身份查询参数 告诉服务器 怎么筛、看多少筛选 分页请求体 你递给服务器的 借书申请单要提交 / 写入的具体内容。对应图书馆场景路径参数说 我要借 123 号书请求体说 借给张三、借 7 天。为什么需要请求体因为路径和查询都在 URL 上有长度限制、会留在日志里、也放不下复杂结构。要传 一本书的完整信息、一份订单、一段文章正文 这种复杂数据就得放到请求体里 —— 它更安全可加密、容量更大、格式更自由JSON/XML/ 文件都行。请求体位置HTTP请求的消息体body中作用创建更新资源携带大量数据操作POST PUT等from fastapi import FastAPI from pydantic import BaseModel from typing import Optional app FastAPI() # 1. 定义数据模型 class Item(BaseModel): name: str price: float is_offer: bool None # 可选字段默认为 None description: Optional[str] None# 将模型作为类型提示用于参数 tax: Optional[float] None price_with_tax: Optional[float] None app.post(/items/) async def create_item(item: Item):# item 此时已经是 Item 类的实例拥有属性提示 item_dict item.model_dump()#这一步就是把复杂的 Pydantic 对象转成简单的字典以便 FastAPI 自动处理和返回。 if item.tax: price_with_tax item.price item.tax item_dict.update({price_with_tax: price_with_tax}) #item_dict[price_with_tax] price_with_tax return item_dict首先数据体一定要先定义一个数据模型然后在创建函数在函数参数中放入你模型的实例item_dict item.model_dump()这一步是Pydantic v2 方法转成纯 dict然后用item_dict接收这个dict方便接下来的.update操作因为dict的操作比Item这个实例模型更加方便2.4 参数限制2.4.1 PATH参数PATH是用于限制路径参数的条件例如下面的代码#路径参数代码实例查找图书 app.get(/book/{book_id}) async def get_book(book_id: int Path(...,gt0,description这是书的编号必须要大于0)): #Path格式--()中。。。必填gt表示大于description是添加的描述信息 return f你找到了第{book_id}本书2.4.2 Query参数Query是用于限制查询参数的条件例如#查询参数代码实例翻页和查找 app.get(/page) async def get_page( keyword:str Query(None,min_length2,max_length200), #Query(默认值关键字的最短长度2最大长度200) page: int Query(None,gt0), #Query(默认值page要大于0) limit:int Query(10), #Query(默认值为10) ): return {关键词: keyword, 页码: page, 每页条数: limit}2.4.3 Field参数前两个参数都是从fastapi中导包的但是Field参数是在pydantic包中这个参数是用来限制请求体的限制的是请求体里创建的数据模型的参数例如#请求体示例 class User(BaseModel): name: str Field(clark,min_length2,max_length200) #Field(默认值为clark,这个最短长度为2 min_length2,max_length200) role: str language: str app.post(/test) async def test(user: User)-dict: tes user.model_dump() tes.update({name:jack,role:student,language:python,gender:male}) return tes
RELATED

相关推荐

MySQL + MongoDB + Redis 三位一体:从理论到实战的完全指南

MySQL + MongoDB + Redis 三位一体:从理论到实战的完全指南

第一部分:读懂三者的定位在学习具体命令之前,先搞清楚一个核心问题:它们分别解决什么问题?关系型与非关系型:两种不同的哲学这个分野决定了三者的根本差异。关系型数据库(以MySQL为代表)&#x…

📅 2026/9/16 9:09:21
迅驰科技GEO项目启动Gate:输入、阻断状态与停止条件

迅驰科技GEO项目启动Gate:输入、阻断状态与停止条件

GEO项目不应以“已生成内容”作为启动条件,而应先验证输入是否满足最低Gate。 上饶市迅驰科技有限公司在复盘自身GEO项目并建立标准交付流程时,将启动条件、阻断状态、影响域和复测证据写入同一任务链。以下字段用于判断一个项目应立即启动、缩小范围还是…

📅 2026/9/17 4:57:04
河南高危工业场景防爆监控选型参考:厂商与技术评估要点

河南高危工业场景防爆监控选型参考:厂商与技术评估要点

化工、矿山等爆炸性危险环境,普通安防设备存在重大安全隐患,防爆监控系统是工业安防的核心组成。河南拥有大量化工、工矿类企业,工程实施人员在做项目方案时,如何筛选设备供应商,是项目前期重点工作。本文整理区域相关…

📅 2026/10/8 10:28:10
MORE NEWS

更多资讯

📰

大夹子电工作业用途考前押题怎么准备才能稳过实操考试

大夹子电工作业用途考前押题怎么准备才能稳过实操考试 实操考试心里没底怕挂科?你不是一个人在战斗。很多准备考大夹子电工作业的小伙伴都遇到过这个问题,尤其是第一次接触实操考试,面对复杂的操作流程和严格的评分标准,很多人会觉得一头雾水,甚至担心自…

📰

电工证求职网站有哪些?工地太忙根本没时间复习考试,内部消息告诉你怎么应对

电工证求职网站有哪些?工地太忙根本没时间复习考试,内部消息告诉你怎么应对 工地太忙根本没时间复习考试,特别是像我们这种项目现场管理员,天天跟工期、跟人打交道,哪还有精力去准备电工证考试?但别以为电工证只是“纸老虎”,在咱们这行, 持证上岗…

📰

考电工证包就业怎么网上查询?学历不高也能报!

考电工证包就业怎么网上查询?学历不高也能报! 你是不是也担心自己学历不高,考电工证包就业这条路走不通?其实不然, 考电工证包就业 早已不是“高学历专属”,只要你有意愿、有动手能力,完全可以从零开始。而如今, 网上查询…

📰

鸡西架子工特种作业证真实经历:怕被中介坑?老手教你避坑

鸡西架子工特种作业证真实经历:怕被中介坑?老手教你避坑 别看我这行干了十年,但一开始也踩过坑。当时我跟着一个劳务班组在鸡西干活,听说要考架子工特种作业证,结果一打听,报名点五花八门,价格也是参差不齐。我那个师傅说:“别乱报,找错地方,钱花了…

📰

架子工特种作业证书多久拿证?怕考不过白交培训费的看过来

架子工特种作业证书多久拿证?怕考不过白交培训费的看过来 怕考不过白交培训费?你不是一个人。特别是像你这样刚毕业的信阳工程类学生,面对架子工特种作业证书考试,心里没底是正常的。但别慌, 架子工特种作业证书多久拿证…

📰

低压电工证审查收费吗?学历不高怕报不上名?上岗必备全攻略来了

低压电工证审查收费吗?学历不高怕报不上名?上岗必备全攻略来了 你是不是也担心自己学历不高,连低压电工证都报不上?别急,今天咱们就来聊聊【低压电工证审查收费吗】这个关键问题,还有关于【上岗必备】的那些事,统统给你讲清楚。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬