FastAPI学习—FastAPI初识及参数传递使用—day03

【Python百日进阶-Web开发-FastAPI】Day801 - FastAPI是什么 文章目录一、官网二、FastAPI是什么三、FastAPI特性3.1 基于开放标准3.2 自动生成文档3.3 更主流的 Python3.4 编辑器支持3.5 简洁3.6 验证3.7 安全性及身份验证¶3.8 依赖注入3.9 无限制"插件"3.10 测试四、Starlette 特性五、Pydantic 特性六、Python 类型提示简介6.1 动机6.1.1 简单示例6.1.2 修改示例6.1.3 添加类型6.2 更多动机6.3 声明类型6.3.1 简单类型6.3.2 嵌套类型6.3.2.1 列表6.3.2. 阅读详情
from fastapi import FastAPI, Query
from enum import Enum
from typing import Optional
from pydantic import BaseModel, Field


app = FastAPI()


@app.get("/")
def index():
    return "Hello World!"


"""
终端启动: 
1. uvicorn 模块名:模块中的app名 --reload   默认是127.0.0.1:8000
例:uvicorn main:app --reload
2. 设置ip和端口:uvicorn 模块名:模块中的app名 --reload --host=ip地址 --port=端口号
例:uvicorn 01:app --reload --host=0.0.0.0 --port=8080
"""


# 1. 路径参数
# 普通路径参数
# @app.get("/book/{book_id}/")
# def book_detail(book_id):
#     return {"book_id": book_id}


# 路径参数指定类型
@app.get("/book/{book_id}/")
def book_detail(book_id: int):
    return {"book_id": book_id}


# 路径参数设置枚举值类
class GenderNum(str, Enum):
    male = "male"
    female = "female"


# 参数设置枚举值
@app.get("/gender/{gender_name}/")
def gender(gender_name: GenderNum):
    return {"gender_name": gender_name}


# 2. 查询参数
# Optional:可选参数
# 可以使Optional中指定的类型,也可以是None类型
# 如果不传会报错,需要设置等于None,这样就可以不传
# @app.get("/search/")
# def search(q: Optional[str] = None):
#     return {"msg": "查询参数为{}".format(q)}


# 查询参数验证
# 不传默认为None
# @app.get("/search/")
# def search(q: str = Query(None, max_length=5)):
#     return {"msg": "查询参数为{}".format(q)}


# 验证必传, 不传会报错
@app.get("/search/")
def search(q: str = Query(..., max_length=5)):
    return {"msg": "查询参数为{}".format(q)}


# 3. 表单参数
# 设置表单请求体参数验证模型
class ArticleModel(BaseModel):
    title: str
    author: str
    content: str = None  # 如果没有传入这个参数,则默认为None
    description: str = Field(max_length=5)  # 限制最大长度


@app.post("/article/")
def add_article(article: ArticleModel):
    print(article)
    return {"article": article}
【Python百日进阶-Web开发-FastAPI】Day806 - FastAPI的查询参数和字符串校验 文章目录一、额外的校验1.1 导入 Query二、使用 Query 作为默认值三、添加更多校验四、添加正则表达式五、默认值六、声明为必需参数七、查询参数列表 / 多个值7.1 具有默认值的查询参数列表 / 多个值7.2 使用 list八、声明更多元数据九、别名参数假设十、弃用参数十一、总结 https://fastapi.tiangolo.com/zh/tutorial/query-params-str-validations/ FastAPI 允许你为参数声明额外的信息和校验。 让我们以下面的应用程序为例 阅读详情

相关推荐

kubernetes rook 安装 cephfs

ceph root kubernete osd uuid partuuid

天津托的博客 1543

FastAPI 学习之路(二)

FastAPI

mr~li的博客 1305

gephi生成网络关系图_路网拓扑重建专题 (3) 网络图生成

城市道路网建模在获得基础路网之后,需要考虑道路交通网络的描述与表达问题。网络是将现实世界中的事物及其关系进行适当的抽象,构造成由节点和边按照一定规则组成的形式。一个实体网络可以由有限个“节点”集合与“边”集合构成的图表示,即网络表示为。对于一个由个节点组成的无权复杂网络,该图有邻接矩阵,这里。根据研究对象不同,建模方法主要包括原始法[1]和对偶法[2]两种,见图1,字母a-j为交叉口编号...

weixin_39761195的博客 3504

app.get(“/“,...)与app.use(“/“,...)里面“/“的含义

让客户直接访问静态资源是一个web服务器最基本的功能】其中"/public"是限制访问前缀,也就是说想要访问public下的内容,必须在请求url中加上/public。1、app.get("/")相当于添加个事件监听。当用户以get方式请求"/"时,它后面的回调函数会执行,其回调函数中的req,res与http模块内容保持一致。此时,所有放在public下的内容可以直接访问,url中并不需要存在public这级目录。在public下新建index.html,可以直接访问到。...

weixin_57913339的博客 1429

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3

Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux...

Deserted Land 8554

非线性动力学_用MatCont分析非线性动力学方程组(一)

写在前面:笔者打算写两到三篇系列文章介绍MatCont,此为第一篇《用MatCont分析非线性动力学方程组(一)》。MatCont是一个基于Matlab而开发的免费工具包,专门用来做非线性动力学模型分叉、向量场、周期性等分析,符号(连续性)运算和数值(离散性)运算均适用。该工具的开发及研究项目由比利时Ghent大学的Willy Govaerts教授、荷兰Utrecht大学的Yuri Kuznets...

weixin_39700215的博客 2767

fastapi——简单快速入门

fastapi print("\033[31m5. --- ORM模型: 从类创建符合的ORM对象模型 ---\033[Om")#显示彩色内容 fastapi是高性能的web框架。他的主要特点是: 快速编码 减少人为bug 直观 简易 具有交互式文档 基于API的开放标准(并与之完全兼容):OpenAPI(以前称为Swagger)和JSON Schema。 1.1fastapi的安装 一、fastapi的安装 pip install fastapi 当然你可以使用国内阿里云镜像源进行安装,会快很多,

m0_55212788的博客 4483

图像处理之边缘检测[微分算子、Canny算子和LOG算子]

LOG算子是在经典算子的基础上发展起来的边缘检测算子,根据信噪比求得检测边缘的最优滤波器。边缘总是以强度突变的形式出现,可以定义为图像局部特性的不连续性,如灰度的突变和纹理结构的突变等。图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构。对于复杂的图像,采用Roberts算子不能较好地得到图像的边缘,而需要采用更加复杂的3X3的算子比如Prewitt算子。对于离散的图像f(x,y),边缘检测算子是用图像的垂直和水平差分来逼近梯度算子,即。

qq_44111805的博客 9836

Python FastAPI 多参数传递

Python FastAPI 多参数传递,Python FastAPI 路径参数传递,Python FastAPI GET 参数传递,Python FastAPI POST 参数传递

Aidon博客 4551

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 367

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3750

快速读懂:FastAPI @app.post () 和@app.get()到底有什么用

app.post() 是 FastAPI 里创建 POST 接口的核心装饰器,它的核心作用只有一个: 定义一个接收客户端「提交数据」的接口,用来处理客户端发送过来的信息(比如表单、JSON、文件等),并返回处理结果。• @app.post():提交 / 创建数据(增 / 改 / 删),比如注册、登录、上传文件、提交表单。2. 指定接口地址:比如 @app.post("/register") 就是 /register 地址。3. 接收客户端数据:可以接收 JSON、表单、文件、路径参数等。

2301_76841966的博客 130

SAP FICO 金税系统-金税->SAP接口功能开发说明书(接口字段)

SAP FICO 金税系统-金税->SAP接口功能开发说明书(接口字段)

我好像病了的博客 1259

FastAPI学习Day1

安装pyCharm 下载社区版,参考其他博主就行,注意是file——settings——project——project interpreter包管理 使用技巧 file——Settings——Appearance中设置背景颜色和工具栏的字体和字体大小 file——Settings——Editor——font 设置编辑页面字体大小和行距 file——Settings——Editor——File Encodings设置编码形式 FastAPI是python web框架,...

qq_44658163的博客 1424

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从零接触FastAPI框架,今日学习day02

定义Payload模型#定义字段email:strage:intphone:str'msg':'请求成功','data':{}}以下是针对该篇 FastAPI 学习笔记的 优快云 文章总结,适合用于文章摘要或结尾回顾:本文是 FastAPI 学习系列的第二篇,在回顾了 Day01 同步/异步区别及路径传参的基础上,重点讲解了Query 查询传参与Request Body 请求体传参的核心用法。Query 查询传参 vs Path 路径传参参数嵌入 URL 路径中(如。

zaohuanxiang的博客 170

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

FastAPI筑基_Day6_GETPOST接口与自动接口文档

前面5天我们铺垫完了 FastAPI 底层核心概念:异步IO、日志封装、命令行参数、并发请求、Pydantic 数据校验。Day6 正式进入 FastAPI 框架实战!本文说了什么:从零搭建 FastAPI 服务,手写 GET 和 POST 接口,配合 Pydantic 模型接收 JSON 请求体。实现了什么:一个可直接运行的 FastAPI 项目,包含根路由、带参 GET 查询接口、POST 注册接口,以及自动生成的交互式接口文档。目的是什么。

qq_39293057的博客 264

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

FastAPI筑基_Day7_彻底吃透三大传参方式

写后端接口,核心工作就是"接收参数、校验参数、处理逻辑、返回结果"。本文说了什么:FastAPI 三种参数传递方式——路径参数(Path)、查询参数(Query)、请求体参数(Body)的原理、写法与适用场景。实现了什么:一个涵盖四种传参模式的可运行 FastAPI 项目,附带完整代码和真实运行结果。目的是什么:学完能分清三种参数的区别,面对任何后端接口需求,一眼就知道该用哪种传参方式。路径参数(Path)查询参数(Query)请求体参数(Body)

qq_39293057的博客 317

Flutter + FastAPI 30天速成计划自用并实践-第4天

本文介绍了使用FastAPI实现完整CRUD操作的第四天学习计划。主要内容包括:1) RESTful API设计原则,如标准HTTP方法使用和状态码规范;2) FastAPI依赖注入系统的作用和常见应用场景;3) 数据库会话管理的重要性。通过database.py、schemas.py和main.py三个核心文件实现文章增删改查功能,相比Day3实现了关注点分离,使用不同模型处理数据库操作和API验证,提供更精确的控制和更好的API设计。练习代码展示了完整的文章管理接口实现。

Non-existent987 727

06.24.每日总结

python 时间标准库 CPP 初识CPP html5 复习 fastapi jinja思路和语法

A2583591687的博客 240

Python实战学习地图:从环境搭建到项目实战的全栈指南

Python作为一门简洁高效的编程语言,其核心在于动态类型系统和丰富的内置数据结构,如列表、字典和集合。理解这些基础概念是掌握Python编程原理的关键。在技术价值层面,Python凭借其强大的标准库和第三方生态,能够高效处理数据分析、Web开发和自动化任务。通过虚拟环境管理和包管理工具pip,开发者可以构建稳定的项目依赖环境,这是工程实践中的重要环节。在应用场景上,Python广泛应用于数据科学、机器学习、后端服务和脚本自动化等领域。本文以Python环境配置、语法精要、常用库使用和项目实战为主线,系统性

weixin_34174105的博客 463

通过Github Copilot开发项目——复现我曾经的农产品交易项目——Day 1

本文记录了作者使用Copilot复现大学时期开发的农产品交易平台"汇农亩场"的过程。文章首先回顾了原项目的开发背景和遗憾丢失的经历,然后详细介绍了Prompt工程的相关知识,包括Prompt的定义、优化方法(角色定义、任务描述、上下文、示例、输入输出规范等)以及系统Prompt等高级技巧。作者通过DeepSeek生成了针对Copilot的第一个Prompt,要求其采用敏捷开发方式分阶段重建项目,并特别设计了Prompt存档机制以保持上下文连贯性...

A15280019132的博客 689

Tortoise-ORM集成

本文介绍了Tortoise-ORM在FastAPI中的使用。Tortoise-ORM是一个异步Python ORM框架,支持MySQL等数据库。主要内容包括: ORM概念:通过Python类映射数据库表,简化SQL操作,提高安全性和可维护性。 Tortoise-ORM特点: 原生异步支持 Django风格API 轻量级高性能 完整关系支持 Pydantic集成 环境搭建: 安装依赖库 配置MySQL连接 项目结构规划 核心功能实现: 模型定义(字段类型、关系) CRUD操作(增删改查) 条件查询和登录验证

A_miahao的博客 312

AI Agent(七)- Dify 自定义工具实战 - 云南省历史天气查询助手

本文介绍了基于Dify平台开发AI Agent自定义工具的完整流程,以「云南省历史天气查询助手」为例。通过FastAPI开发天气查询接口对接SQLite数据库存储的历史天气数据,结合内网穿透技术实现接口外网访问。在Dify平台中基于OpenAPI规范创建工具并配置Agent,最终实现通过自然语言查询云南各城市历史天气的功能。文章详细讲解了从数据集准备、接口开发到Agent部署的全过程技术实现。

zcs2312852665的博客 826

Go / C / Python / Java 四语言对照学习总览

按统一维度横向对比四门语言的核心知识点,便于交叉记忆与迁移学习。

2401_83227843的博客 954

ColumnTransformer实战:构建鲁棒可部署的数据预处理流水线

数据预处理中的变量转换是机器学习项目成败的关键环节,其本质是针对数值型、类别型、时间型等异构特征实施差异化处理。核心原理在于打破全局统一变换的误区,通过声明式列级分治实现参数隔离与流程解耦,从而保障训练与推理的一致性。技术价值体现在提升模型鲁棒性、防止数据泄露、支持生产环境持续迭代。典型应用场景包括金融风控建模、电商推荐系统、工业时序预测等需高可靠数据流水线的领域。本文聚焦scikit-learn中ColumnTransformer与Pipeline协同机制,深入解析OneHotEncoder、Standa

dihuangxiu8828的博客 358

学历核验接口+RAG入门

RAG(Retrieval-Augmented Generation)= 检索 + 增强 + 生成检索(Retrieval):从知识库中找到相关信息增强(Augmented):将检索到的信息作为上下文生成(Generation):AI基于上下文生成更准确的回答数据准备:加载手册 → 清洗 → 分块 → 生成向量 → 存入数据库;问答交互:用户提问 → 检索相似文本 → 构建提示词 → 大模型生成回答。每个函数职责单一,通过参数传递协作,便于维护和扩展。import re。

m0_74819410的博客 227
上一篇: FastAPI学习—异步爬虫—day02
下一篇: Nginx之FastDFS-nginx-module-FastDFS安装问题
s_daqing
博客等级 码龄8年 6306粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值