当前位置: 首页 > article >正文

Jenkins 学习总结腋

先唠两句参数就像餐厅点单把API想象成一家餐厅的“后厨系统”。? 路径参数/dishes/{dish_id} - 好比你要点“宫保鸡丁”这道具体的菜它是菜单资源路径的一部分。查询参数/dishes?spicytruetypeSichuan - 好比你说“我要川菜要辣的”。这是对结果的筛选和描述不是特定资源。请求体 - 你递进去的详细订单包括要什么菜、口味、备注内容可以很复杂。Cookie / Header - 像是你的会员卡自动带身份或者你给服务员的口头特殊要求如“快点上”。搞清楚这个参数该放哪儿基本就对了一半。另一半在于怎么让后厨你的代码准确无误地理解这些“订单”。第一部分基础必知——路径与查询参数好咱们先来聊聊最常用的两个兄弟。路径参数锁定具体目标用来唯一标识一个资源。想象一下你要获取ID为42的用户信息路径就是 /users/42。from fastapi import FastAPIapp FastAPI()app.get(/items/{item_id})async def read_item(item_id: int): # FastAPI自动将路径中的item_id转换为intreturn {item_id: item_id}关键点参数类型声明如int至关重要FastAPI会据此自动进行类型转换和验证。如果你传个“abc”进来它会礼貌地返回一个错误而不是让你的代码崩溃。这里千万别学我当初偷懒所有参数都定义成字符串到函数内部再转换。结果就是错误处理代码散落一地调试起来想哭。查询参数提供筛选与选项它不是路径的一部分跟在?后面用连接。比如 /items/?skip0limit10。app.get(/items/)async def read_items(skip: int 0, limit: int 10):return {skip: skip, limit: limit}注意到 0和 10了吗这给了它们默认值让它们变成了可选参数。没有默认值的参数就是必选查询参数。官方文档虽然把查询参数讲得很简单但根据我们的线上经验对于复杂的分页过滤接口强烈建议用Pydantic模型来封装查询参数而不是把一长串参数都列在函数定义里维护起来简直是灾难。这个我们后面讲。? 第二部分进阶必备——参数验证与请求体接下来重点来了如何确保客人点的菜是合理的比如“宫保鸡丁”要求加“草莓”这得拦住。用Query、Path、Body等工具精细控制Fastapi提供了这些“工具函数”让你能对参数进行更多描述。from fastapi import Query, Pathapp.get(/items/{item_id})async def read_items(item_id: int Path(..., title商品ID, ge1), # ...表示无默认值必填。ge1表示大于等于1q: str Query(None, min_length3, max_length50), # 可选参数None是默认值size: float Query(1.0, gt0, lt10) # 可选必须大于0小于10):return {item_id: item_id, q: q, size: size}踩坑提醒当同一个参数既可能是路径参数又可能是查询参数时虽然设计上应避免FastAPI默认会认为是查询参数。你必须显式使用Path来声明它是路径参数。请求体Body处理复杂数据当数据复杂时比如创建一篇博客文章就用请求体通常是POST/PUT。核心工具Pydantic模型。这简直是FastAPI的“王牌搭档”数据验证和序列化的神器。from pydantic import BaseModelclass Item(BaseModel):name: strdescription: str | None Noneprice: floattax: float | None Noneapp.post(/items/)async def create_item(item: Item): # FastAPI会自动从请求体中识别itemreturn item你可能会问多个参数混着来怎么办比如路径参数、查询参数和请求体模型一起放心FastAPI智能到令人发指。它会自动识别1 参数在路径中或Path()声明 - 路径参数2 单数类型int, str等且有/无默认值(必填/非必填)或Query()声明等不在路径中 - 查询参数3 Pydantic模型类型 - 请求体app.put(/items/{item_id})async def update_item(item_id: int, # 路径参数q: str | None None, # 可选查询参数item: Item, # 请求体user: User # 第二个请求体FastAPI会自动处理为多个请求体参数):return {item_id: item_id, q: q, item: item, user: user}再说个容易翻车的点嵌套模型与复杂验证Pydantic模型可以嵌套用来描述复杂数据结构比如订单里有商品列表每个商品又有自己的属性。class Image(BaseModel):url: strname: strclass Item(BaseModel):name: strprice: floattags: list[str] [] # 字符串列表image: Image | None None # 嵌套模型app.post(/items/)async def create_item(item: Item):return item这个工具的选择好比选螺丝刀不是最贵的就好而是最趁手的。Pydantic就是FastAPI生态里最趁手的那把“瑞士军刀”字段类型、默认值、自定义验证器validator一套全齐。第三部分扩展知识——Cookie、Header与其他是不是以为这样就完了餐厅点单还有会员卡和特殊要求呢Cookie 和 Header 参数它们通常用于元数据、身份认证等不直接作为业务参数。在FastAPI中获取它们非常方便。from fastapi import Cookie, Headerapp.get(/)async def read_header_cookie(user_agent: str | None Header(None),session_token: str | None Cookie(None)):return {user_agent: user_agent, session_token: session_token}注意Header会自动将参数名中的下划线_转换为连字符-。比如user_agent会读取User-Agent这个请求头且不区分大小写哦。如果请求头本身就有连字符直接用Header(..., alias...)指定别名。表单数据Form和文件上传File当需要接收HTML表单提交的数据或上传文件时使用。from fastapi import Form, File, UploadFileapp.post(/login/)async def login(username: str Form(...), password: str Form(...)):return {username: username}app.post(/upload/)async def upload_file(file: UploadFile File(...)):content await file.read()return {filename: file.filename, size: len(content)}最后啰嗦一句File和Form参数不能与纯JSON的Body模型混用它们是不同的编码格式。接收文件记得用异步读写大文件更要流式处理别一股脑读到内存里。? 总结与一张速查表好了咱们今天把FastAPI的参数系统彻底捋了一遍。最后送你一张我总结的“参数安置决策表”下次设计接口时拿出来看一眼保准不迷糊路径参数Path用于唯一指定资源。如/users/{id}查询参数Query用于过滤、排序、分页资源列表。如/users?roleadminpage2请求体Body用于创建或更新资源复杂数据。用Pydantic模型。Cookie用于自动携带的会话或身份信息。Header用于元数据、内容协商、认证令牌等。表单Form用于接收HTML表单提交的键值对数据。文件File用于上传文件。晌永是彝

相关文章:

Jenkins 学习总结腋

先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...

2025届学术党必备的十大AI科研平台横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能本领在学术写作范畴的运用越来越普遍,它的关键价值是协助科研者达成文献…...

ARM 架构 JuiceFS 性能优化:基于 MLPerf 的实践与调优死

Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...

OpenClaw 太难装了?试试 LangTARS:一行命令部署 + WebUI 管理面板,还能接入 Dify/Coze/nn??悠

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

PHP AI校验配置被低估的致命细节(内存泄漏触发点、AST解析偏差、Token限流阈值)——资深SRE连夜重写配置手册

第一章:PHP AI校验配置的全局认知与风险图谱PHP AI校验配置并非孤立的技术模块,而是横跨应用层、中间件、模型服务与基础设施的复合型安全控制面。其核心目标是在AI能力注入业务流程的同时,确保输入合法性、输出可控性、行为可审计及策略可收…...

嵌入式进阶——MCU启动与代码执行教程

MCU启动与代码执行教程 1. 简介 本教程旨在帮助理解,深入剖析ARM Cortex-M系列单片机上电后的完整启动流程,以及程序在Flash、RAM、寄存器三者的协同执行机制。基于STM32等典型MCU,从硬件复位瞬间开始,逐步讲解向量表加载、Reset_…...

学Simulink——基于Simulink的坡道起步防溜坡电机转矩控制

目录 手把手教你学Simulink ——基于Simulink的坡道起步防溜坡电机转矩控制 一、问题背景 二、系统架构与控制逻辑 1. 控制层级 2. 防溜坡转矩需求 三、无传感器坡度估计方法 方法:基于加速度计 + 车速微分 Simulink 实现 四、防溜坡转矩控制器设计 1. 基础转矩规划…...

基于yolov8和faster-rcnn的电动车戴头盔检测,界面可选择模型,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测、图像分类识别、目标追踪、图像分割、图像检索等项目可看我主页其他文章 功能演示(看shi pin 下面的简介): https://www.bilibili.com/video/BV1DWXrBaE3Z/?spm_id_from333.1387.homepage.video_card.click&vd_source23c…...

打卡信奥刷题(3078)用C++实现信奥题 P7033 [NWRRC 2016] CodeCoder vs TopForces

P7033 [NWRRC 2016] CodeCoder vs TopForces 题目描述 在 Byteland,竞赛编程非常流行。事实上,每位 Byteland 的公民都在两个编程网站——CodeCoder 和 TopForces 上注册。每个网站都有自己专有的评分系统。每位公民在每个网站上都有一个唯一的整数评分&…...

打卡信奥刷题(3077)用C++实现信奥题 P7023 [NWRRC 2017] Equal Numbers

P7023 [NWRRC 2017] Equal Numbers 题目描述 给定一个包含 nnn 个整数 a1,…,ana_{1}, \ldots, a_{n}a1​,…,an​ 的列表。你可以执行以下操作:选择某个 aia_{i}ai​ 并将其乘以任意正整数。 你的任务是计算在进行 kkk 次操作后列表中可能出现的不同整数的最小数…...

法国Hornetsecurity联合里尔大学:如何让人工智能学会保护隐私

这项由法国Hornetsecurity公司与里尔大学、法国国家信息与自动化研究院(Inria)、法国国家科学研究中心(CNRS)以及里尔中央理工学院联合开展的研究,发表于2026年3月31日的计算机科学期刊,论文编号为arXiv:2603.29497v1。有兴趣深入了解的读者可以通过这个…...

SAP MM | 物料主数据:为什么修改了“特殊采购类型”但在 MM04 查不到修改历史?

在 SAP 物料主数据(Material Master)的操作中,用户有时会修改 “特殊采购类型”(SOBSL),比如从“厂内生产”改为“从其他工厂调拨(40)”。但用户说,修改了主数据之后&…...

容器化网络与Kubernetes网络深度解析

一、Docker网络基础 Docker四大网络驱动 Driver 1: Bridge (默认) ┌────────────────────────────────┐ │ Docker主机 │ │ │ │ ┌─────────────┐ ┌──────────┐ │ │ │ Container A │ │ Bridge │ │ │…...

Shell流程控制(if-else、循环,实现复杂逻辑)

在Linux/Unix系统中,Shell脚本是自动化运维、批量处理任务的核心工具,而流程控制则是让脚本“摆脱线性执行”、实现灵活逻辑的关键。无论是简单的条件判断(如“文件是否存在”),还是复杂的批量操作(如“遍历…...

Shell通配符与正则表达式(批量匹配,精准筛选)

在Linux Shell运维、脚本开发中,“匹配”是高频操作——批量处理文件、筛选日志内容、定位目标数据,都离不开高效的匹配工具。而Shell通配符与正则表达式,正是支撑这些操作的核心技术。很多初学者容易混淆二者,误以为它们是“同一…...

Shell变量与环境变量(自定义配置,灵活复用)

在Linux/Unix Shell编程与日常运维中,变量是贯穿始终的核心工具——它就像一个可自定义的“数据容器”,能存储文本、数字、路径等各类信息,通过灵活配置实现代码复用、环境统一,大幅提升操作效率与脚本可维护性。很多新手容易混淆…...

Shell核心基础命令(下)——系统与权限操作

Shell核心基础命令(下)——系统与权限操作 前言 在Linux系统中,权限管理是系统安全的基石。作为多用户多任务操作系统,Linux通过精细的用户-组-权限模型来控制对系统资源的访问。本文将深入讲解Shell中与系统权限相关的核心命令…...

月入3W+!Java+YOLO接单变现全指南:10个可直接落地的AI视觉项目,全场景覆盖

做Java后端开发的同学,是不是都困在「CRUD死循环」里?每天写重复的业务代码,薪资触顶难突破,想转AI赛道又被Python劝退,学了一堆算法却找不到落地场景,更不知道怎么变现。 我身边有个3年经验的Java开发朋友…...

不记命令也能排障:catpaw chat 实战手册俟

Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT&#xff0…...

EF Core 10向量搜索扩展架构设计图泄露事件(内部PPT第7页已证实):这3个设计决策将重写.NET AI应用开发范式

第一章:EF Core 10向量搜索扩展的演进背景与战略定位随着AI应用在企业级系统中加速落地,传统关系型数据库的标量查询能力已难以满足语义检索、相似性匹配等新兴场景需求。EF Core 10首次将向量搜索能力深度融入ORM层,标志着微软在数据访问技术…...

一文搞懂 Cookie、Session 和 Token 的区别

背景 在 Web 应用中,HTTP 是无状态协议,服务器无法自动识别用户身份。为了实现用户登录状态的保持与身份认证,需要引入 Cookie、Session 和 Token 等机制来在多次请求之间维持用户状态 Cookie Cookie 是存储在客户端(浏览器&#…...

Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理揪

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

多租户下的ERP系统的仓储管理模块分析设计延

springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类&#xff…...

PFC(Power Factor Correction,功率因数校正)

PFC电路的用处用处1:迫使电流与电压同相位,使得用电设备对于电网而言相当于纯阻性负载。当负载呈感性时:电流滞后电压;呈容性时:电流超前电压功率因数越大(接近1.0)说明设备性能越好&#xff0c…...

【赵渝强老师】崖山数据库的体系架构

YashanDB数据库中有数据库和数据库实例这两个基本的概念,并且从体系架构的组成上看,YashanDB数据库又分为了存储结构、进程线程结构和内存结构。因此,要掌握YashanDB的体系架构就需要从数据库与数据库实例入手,并进一步深入到其内…...

亚马逊停止旧款 Kindle 支持,用户与市场面临新变局

2026 年旧款 Kindle 告别 Kindle 商店亚马逊宣布从 2026 年 5 月 20 日起,停止对 2013 年前发布的 Kindle 电子阅读器和 Fire 平板电脑的支持。届时,这些设备将无法访问 Kindle 商店,不能借阅、购买或下载新书籍,但仍可阅读设备上…...

GraalVM Native Image内存优化实战手册(含JDK21+GraalVM24.1插件全链路安装避坑清单)

第一章:GraalVM Native Image内存优化实战手册导论GraalVM Native Image 将 Java 应用提前编译为独立的本地可执行文件,显著降低启动延迟与运行时内存开销。然而,默认构建的 native image 常因反射、动态代理、资源加载等隐式依赖而保留大量未…...

小而强,Meta推出超级智能实验室首款AI模型Muse Spark

文章目录前言二、啥是Muse Spark?说白了就是个"会思考的小机灵鬼"三、"小而强"到底是啥意思?四、不止会聊天,还会"看图说话"五、专门请了1000个医生来"教"它六、从"开源先锋"到"闭源…...

C# 面试高频题:装箱和拆箱是如何影响性能的?伟

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

Unity发布京东小游戏圃

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...