fastapi-Headers和Cookies
在FastAPI中,Headers是一个特殊的类型,用于处理HTTP请求头(Headers)。Headers允许你接收、访问和修改HTTP请求中的头部信息。
使用Headers,你可以在FastAPI的路由视图中将请求头作为参数接收,并对它们进行操作
Headers
你可以使用定义Query、Path一样的方式来定义Header参数。使用如下:
from fastapi import Header@router.get("/home")
async def home(authorization: str = Header()):return {'code': 1}
也可以这样定义:
from fastapi import Header
from typing import Annotated@router.get("/home")
async def home(authorization: Annotated[str, Header()]):return {'code': 1}
当然,像Query、Path和Body等都可以使用Annotated这样来声明。
在Swagger UI中效果如下:

这样就表示该请求需要接收一个authorization标头,否则将会引发422错误,如下:
{"detail": [{"type": "missing","loc": ["header","authorization"],"msg": "Field required","input": null,"url": "https://errors.pydantic.dev/2.0.3/v/missing"}]
}
大多数标准的Headers用"连字符"分隔,也称为"减号"(-)。但是像user-agent这样的变量在Python中是无效的。因此, 默认情况下, Header 将把参数名称的字符从下划线(_)转换为连字符(-)来提取并记录headers.
同时,HTTP headers 是大小写不敏感的,因此,因此可以使用标准Python样式(也称为 “snake_case”)声明它们。因此,您可以像通常在Python代码中那样使用 user_agent,而不需要将首字母大写为User_Agent或类似的东西。如果出于某些原因,你需要禁用下划线到连字符的自动转换,设置Header的参数 convert_underscores为 False:
@router.get("/home")
async def home(sp_name: str = Header(convert_underscores=False)):return {'code': 1}
Headers常见参数如下:
default: 默认值,任何类型。 当设置了该值,表明该参数非必须参数default_factory: 生成的默认值的函数,接收一个Callable类型。default与default_factory不可同时存在alias: 别名,str类型title: Swagger UI中参数的标题,str类型。Path/Query操作不起作用description: Swagger UI中参数的描述,str类型convert_underscores: 是否将连字符转化为下划线,接收一个bool类型,默认为Truegt: 大于,数字类型ge: 大于或等于,数字类型lt: 小于,数字类型le: 小于或等于,数字类型multiple_of: 接收一个数字类型,表示为几的倍数。例如multiple_of的值为2,那么该字段的值必须是2的倍数allow_inf_nan:bool类型,表示是否允许字段为NaN或无穷大(+inf或-inf)。默认为True,为与JSON兼容请设置为False。max_digits:int类型,表示最大位数,字段类型须设置为decimal.Decimal类型。长度计算中不包括小数点前的零或小数点后的零decimal_places:int类型,表小数最大位数,字段类型须设置为decimal.Decimal类型。长度计算中不包括小数点前的零或小数点后的零min_length: 最小长度,int类型max_length: 最大长度,int类型regex: 正则匹配,str类型example: Swagger UI中参数的示例值,任何类型examples: Swagger UI中参数的示例值,Dict类型。Path/Query操作不起作用deprecated: 是否过期,bool类型,默认Falseinclude_in_schema: Swagger UI中是否添加对参数的说明,bool类型,默认True
Cookies
在FastAPI中,Cookies是一个特殊的类型,用于处理HTTP请求中的Cookie数据。Cookies允许你接收、访问和修改HTTP请求中的Cookie信息。使用Cookies,你可以在FastAPI的路由视图中将Cookie数据作为参数接收,并对其进行操作。
同样,Cookies也可以像定义Query、Path一样的方式来定义Cookies参数。使用如下:
from fastapi import Cookie@router.get("/home")
async def home(sp_name: str = Cookie()):return {'code': 1}
在Swagger UI中效果如下:

这样就表示该请求需要接收一个sp_nameCookie,否则将会引发422错误,如下:
{"detail": [{"type": "missing","loc": ["cookie","sp_name"],"msg": "Field required","input": null,"url": "https://errors.pydantic.dev/2.0.3/v/missing"}]
}
Cookie接收的参数与Header基本相同,这里不做介绍
相关文章:
fastapi-Headers和Cookies
在FastAPI中,Headers是一个特殊的类型,用于处理HTTP请求头(Headers)。Headers允许你接收、访问和修改HTTP请求中的头部信息。 使用Headers,你可以在FastAPI的路由视图中将请求头作为参数接收,并对它们进行…...
云计算的思想、突破、产业实践
文章目录 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五…...
【漏洞复现】Apache_HTTP_2.4.49_路径穿越漏洞(CVE-2021-41773)
感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞验证方式一 curl方式二 bp抓包 说明内容漏洞编号CVE-2021-41773漏洞名称Apache HTTP 路径穿越漏洞漏…...
AD9371 官方例程 NO-OS 主函数 headless 梳理
AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…...
WSL 下载
可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。 首先查看可以下载的版本 最后再运行wsl --ins…...
虚拟dom及diff算法之 —— snabbdom
源码:https://github.com/snabbdom/snabbdom 测试环境搭建 npm i -S snabbdom 安装好的node_modules提供了js和ts的代码:build:js代码,src:ts代码 npm i -D webpack5 webpack-cli3 webpack-dev-server3 webpack&#x…...
毅速丨3D打印结合拓扑优化让轻量化制造更容易
轻量化可以减少产品的重量,提高产品的性能和效率,同时减少能源消耗和排放。尤其在航空航天、汽车制造造等行业对轻量化追求更高。当前,随着制造技术的发展,拓扑优化结合3D打印为轻量化制造带来的显著的优势正在逐渐凸显。 首先&am…...
CentOS 7使用RPM包安装MySQL5.7
目标 本文目标是简单介绍如何在CentOS 7上使用RPM包安装MySQL 5.7,然后描述如何调整存储路径datadir。 环境准备 操作系统 —— CentOS 7MySQL版本 —— MySQL 5.7.44 获取MySQL-rpm包 官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.htm…...
UI设计工具都哪些常用的,推荐这5款
对于UI设计师来说,日常工作无非是围绕“需求分析”→设计实施→“开发交付”这三个环节来进行。 然而,在每个环节中,设计师使用的工具却完全不同。在这里,我收集整理了UI设计师在日常工作中常用的五种工具,希望能为新…...
小饭店点餐系统,小餐馆点餐怎么方便,操作简单的酒店点单软件
小饭店点餐系统,小餐馆点餐怎么方便,操作简单的酒店点单软件 今天给大家分享是 佳易王酒店点餐管理系统软件V16.0版本,点餐界面如下图, 1、开台的桌子醒目显示,结账后或没有开台的桌子为灰色显示。 2、多种点餐方式…...
面试经典150题——Day31
文章目录 一、题目二、题解 一、题目 3. Longest Substring Without Repeating Characters Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abcabcbb” Output: 3 Explanation: The answer is “abc”…...
chinese_llama_aplaca训练和代码分析
训练细节 ymcui/Chinese-LLaMA-Alpaca Wiki GitHub中文LLaMA&Alpaca大语言模型本地CPU/GPU训练部署 (Chinese LLaMA & Alpaca LLMs) - 训练细节 ymcui/Chinese-LLaMA-Alpaca Wikihttps://github.com/ymcui/Chinese-LLaMA-Alpaca/wiki/%E8%AE%AD%E7%BB%83%E7%BB%86%E…...
大数据Doris(十七):关于 Partition 和 Bucket 的数量和数据量的建议
文章目录 关于 Partition 和 Bucket 的数量和数据量的建议 关于 Partition 和 Bucket 的数量和数据量的建议 一个表的 Tablet 总数量等于 (Partition num * Bucket num)。一个表的 Tablet 数量,在不考虑扩容的情况下,推荐略多于整个集群的磁盘数量。单个 Tablet 的数据量理论…...
进击的巨人 完结篇 后篇-中文下载
话不多说,直接上链接 【简中】[BeanSub][Shingeki_n…1080P][x264_AAC].mp4 https://www.aliyundrive.com/s/7V4jaN6s6rY 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放…...
力扣刷题-二叉树-二叉树的非递归遍历
参考:https://www.programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 思路 为什么可以用迭代法(非递归的方式)来实现二叉树的前后中序遍历呢? 我们在栈与…...
react_15
动态菜单 图标要独立安装依赖 npm install ant-design/icons 图标组件,用来将字符串图标转换为标签图标 import * as icons from "ant-design/icons"; interface Module {[p: string]: any; } const all: Module icons; export default function Ico…...
关于ROS的网络通讯方式TCP/UDP
一、TCP与UDP TCP/IP协议族为传输层指明了两个协议:TCP和UDP,它们都是作为应同程序和网络操作的中介物。 **TCP(Transmission Control Protocol)协议全称是传输控制协议,是一种面向连接的、可靠的、基于字节流的传输…...
Leetcode—421.数组中两个数的最大异或值【中等】明天写一下字典树做法!!!
2023每日刷题(十九) Leetcode—421.数组中两个数的最大异或值 算法思想 参考自灵茶山艾府 实现代码 class Solution { public:int findMaximumXOR(vector<int>& nums) {int maxValue *max_element(nums.begin(), nums.end());int highId…...
数智赋能!麒麟信安参展全球智慧城市大会
10月31日至11月2日,为期三天的2023全球智慧城市大会长沙在湖南国际会展中心举办,大会已连续举办12届,是目前全球规模最大、专注于城市和社会智慧化发展及转型的主题展会。长沙市委常委、常务副市长彭华松宣布开幕,全球智慧城市大会…...
基础课21——知识库管理
1.知识库的概念、特点与功能 智能客服中的知识库是一个以知识为基础的系统,可以明确地表达与实际问题相对应的知识,并构成相对独立的程序行为主体,有利于有效、准确地解决实际问题。它储存着机器人对所有信息的认知概念和理解,这…...
ERNIE-4.5-0.3B-PT智能合约分析:区块链安全检测系统
ERNIE-4.5-0.3B-PT智能合约分析:区块链安全检测系统 1. 引言 区块链开发者们经常面临一个头疼的问题:智能合约部署后才发现存在安全漏洞,导致资产损失。传统的安全审计需要专业团队花费数天甚至数周时间,成本高昂且效率低下。现…...
基于Moondream2的工业质检系统:缺陷检测与分类
基于Moondream2的工业质检系统:缺陷检测与分类 1. 为什么传统质检方式正在被重新思考 产线上的质检员每天要盯着成百上千件产品,眼睛酸涩、注意力下降,漏检率悄悄爬升。一台设备表面划痕只有0.1毫米宽,人眼在连续工作两小时后&a…...
如何快速配置TranslucentTB:Windows任务栏美化终极教程
如何快速配置TranslucentTB:Windows任务栏美化终极教程 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让Windows任务栏变…...
别再到处找转换工具了!用Audacity把WAV无损转成MP3,保姆级图文教程
音频处理新手指南:Audacity无损转换WAV到MP3的完整方案 你是否曾经下载了一段高质量录音,却发现文件体积大得惊人,根本无法通过邮件发送?或者尝试上传播客内容时,平台总是提示"文件格式不支持"?这…...
【以太网帧格式】
以太网帧格式一、顺序二、分析一、顺序 前导码 | 帧开始定界符 | 目的MAC | 源MAC | 类型(长度) | 数据字段 | 帧校验序列FCS3 (以太网帧最小帧长:64 字节,最大帧长:1518 字节。) 二、分析 1…...
Agent调试技巧:LangSmith与日志分析
Agent开发最痛苦的部分是调试。传统代码调试,你能看到每一行执行的结果。Agent调试,你只能看到"输入 → 输出",中间的推理过程是个黑盒。 这篇文章,我们讨论Agent调试的方法和工具:怎么追踪Agent的推理过程…...
xiaomusic启动故障终极解决指南:设备认证配置与开源智能家居集成方案
xiaomusic启动故障终极解决指南:设备认证配置与开源智能家居集成方案 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 问题定位:识别xiaomusi…...
智能电网RAG优化:闭环协同与精准检索
RAG论文原理解析、公式含义与错误点对点修正方案 一、论文核心原理详细解析(含场景举例) 本文针对通用RAG框架在术语密集、强监管垂直领域(智能电网)的三大原生适配瓶颈,提出了** RAG领域原生闭环协同RAG范式**,核心是将智能电网领域知识嵌入检索-生成-评估全生命周期,…...
字符串拆分合并
贪心算法,最长限制。 import reclass TextFilter:def __init__(self):# 字符映射规则self.char_map = {# 省略号 → 停顿…: ,, ...: ,,: ,,# 破折号 → 停顿——: ,, —: ,,# 书名号 → 直接删除《: , 》: , 〈: , 〉: ,# 其他特殊符号 → 删除*: , /: , #: ,}# 需要保留的…...
2026年AI模型大战升级:Claude 4.6官网双版本发布,国内用户如何零门槛体验?
2026年2月,AI领域再起波澜。Anthropic在短短两周内连续推出Claude Opus 4.6与Sonnet 4.6双版本,以百万级上下文窗口与智能体协作能力,向OpenAI的GPT-5.4与谷歌的Gemini 3.1 Pro发起正面挑战。 对于国内AI爱好者、开发者与内容创作者而言&…...
