Python Flask请求参数怎么取_request.args取GET参数与request.form取POST表单详解

request.args取不到GET参数主因是URL未编码导致浏览器/代理截断,中文、空格等须用urllib.parse.quote()或encodeURIComponent()编码;Nginx会自动解码,重复编码引发乱码。

request.args 取不到 GET 参数?检查 URL 和编码

不是 request.args 有问题,而是参数根本没进 URL 或被浏览器/代理截断了。常见于中文、空格、特殊符号未编码,比如直接拼 ?q=你好 world —— 浏览器会把空格转成 + 或丢弃,后端收不到完整值。

  • urllib.parse.quote() 手动编码参数,或前端用 encodeURIComponent()
  • 调试时先打印 request.urlrequest.args.to_dict(),确认原始 URL 是否含预期键值
  • 注意:Nginx 默认会 decode 一次再传给 Flask;如果前端已 encode 两次,后端可能多 decode 一次导致乱码

request.form 拿不到 POST 表单数据?ContentType 是关键

request.form 只解析 Content-Type: application/x-www-form-urlencodedmultipart/form-data 的请求体。如果你用 fetchaxios 发 JSON(application/json),request.form 一定是空的 —— 这不是 bug,是设计如此。

  • 发表单用原生 或设置 headers: {'Content-Type': 'application/x-www-form-urlencoded'}
  • 发 JSON 改用 request.get_json(),别硬套 request.form
  • 上传文件必须用 enctype="multipart/form-data",且 request.form 只含文本字段,文件走 request.files

GET 和 POST 混合参数怎么统一处理?别盲目 merge

有人习惯写 request.args.to_dict() | request.form.to_dict() 合并,但语义就乱了:同一个键在 URL 和 body 里同时出现,哪个优先?Flask 不定义顺序,实际取决于字典合并方式(Python 3.9+ 是右覆盖,旧版需显式控制)。

  • 明确业务意图:搜索类接口通常只认 request.args;提交类接口只认 request.formrequest.get_json()
  • 若真要混合(如调试用),用 request.values —— 它按 args → form → files.keys() 顺序查找,但注意 files 里的键名也会计入,可能干扰
  • 更安全的做法是显式声明来源:q = request.args.get('q') or request.form.get('q')

为什么 request.json 有时是 None?和 Content-Type、数据格式强绑定

request.json 是懒加载属性,触发时会尝试解析 request.data。它为 None 的原因很具体:要么 Content-Type 不是 application/json,要么内容本身不是合法 JSON(比如多了逗号、单引号、BOM 头)。

Miniflow

AI工作流自动化平台

下载

立即学习“Python免费学习笔记(深入)”;

  • 前端发 JSON 时务必设 Content-Type: application/json,否则 Flask 不触发解析
  • curl -H "Content-Type: application/json" -d '{"a":1}' 测试,避免浏览器插件自动改头
  • 遇到 None,先看 request.data 是否有原始字节,再用 json.loads(request.data) 手动试错,能快速定位是格式还是头的问题

最常被忽略的是:Flask 默认不校验 Content-Length,空 body + 正确头也会让 request.json 返回 None,而不是报错。调试时别只盯返回值,得看原始输入流。

相关推荐:

鸿蒙智行全新一代问界 M9 双百万像素智慧投影大灯会“抠图”,官方发文详解能力边界

7 月 12 日消息,鸿蒙智行全新一代问界 M9 已于今年 5 月发布,提供标准尺寸及 Ultimate 领世加长版两款车型,定价 47.98 万元起。该车行业首发了双百万像素全彩智慧投影大灯技术。注意到,赛力斯集团董事、副总裁康波今日发布《问界 M9 答网友问》,解答了该技术相关问题。据介绍,双百万像素全彩智慧投影大灯的百万像素级 ADB 能精确到像素点,遮蔽对向车辆和行人,对方不眩目,自己的照...

猛士汽车详解 X700 定位:全面对标主流城市 SUV 标准,延续与华为深度合作的智能化优势

7 月 12 日消息,猛士汽车今日发文介绍了新车 X700 的定位。官方表示,该车的登场补全了品牌产品矩阵的关键拼图,标志着猛士正式进军主流家用 SUV 赛道。据介绍,猛士 917 和猛士 M817 为非承载式车身。其中,猛士 917 是猛士品牌旗舰系列,打造极致硬核豪华越野体验;M817 是全能家用硬派系列,面向全场景家庭出行;全新猛士 X 系列为承载式车身,主打“为精致家庭用户提供城市轻户外生...

消息称稀宇科技 MiniMax 计划推出参数规模 2.7 万亿新一代大模型

7 月 8 日消息,据 The Information 消息,稀宇科技计划推出 2.7 万亿参数规模的新一代大模型。消息人士透露,这款新模型在内部的代号为 M3 Pro,该模型预计最早将于今年第三季度发布并开源,大幅增强处理复杂推理和多步任务的能力。稀宇科技官网显示,MiniMax 成立于 2022 年初,自研多模态模型及 AI 原生应用已累计为来自超过 200 个国家及地区的逾 3 亿名个人用户...

美团万亿参数大模型 LongCat-2.0 开源,同步开放国产卡推理代码

7 月 6 日消息,今天,美团将万亿参数大模型 LongCat-2.0 正式开源。据介绍,LongCat-2.0 总参数 1.6T,平均激活约 48B,为真实的 Agentic Coding 任务而生,架构上创新性引入 LongCat 稀疏注意力和 N-gram Embedding,提升长上下文处理效率与 token 级表示能力的同时,结合动态激活进一步强化了代码理解、生成以及执行的表现。官方称,...

索尼 RX10V 相机镜头参数公开:9.1-210mm f/2.4-4

感谢网友 BIOS、独立摄影师 的线索投递! 7 月 6 日消息,索尼官方前天在 Instagram 平台发布了 RX10V 相机的预热视频,官方给出的一段特写显示,这款相机搭载的固定镜头规格为 9.1-210mm,光圈为 f/2.4-4。作为参考,索尼 RX10 IV 相机搭载的是 8.8-220mm 镜头,与 RV10V 相比略有不同。假设两款相机都采用尺寸相同的 1 英寸传感器,那么对应的等...

《太吾绘卷:天幕心帷》创建人物详解攻略分享

《太吾绘卷:天幕心帷》中的创建人物选择是游戏里非常重要的事情,而创建人物需要注意的事情有很多,首先是捏脸选择性别,男女都可以,男性的优势就是可以多生很多孩子,女性的优势就是可以进行幼教胎教以及与他人初识的好感度会更高。 太吾绘卷天幕心帷创建人物要注意什么 本文内容来源于互联网,如有侵权请联系删除。

三国志:王道天下周瑜武将详解

三国志王道天下周瑜怎么样,周瑜+孙策+张昭/大乔是一个利用激流之书+流言四起/龙战于野等战法与孙策配合打出前三回合高概率控制,多种持续性状态配合周瑜打出高额输出,多种控制配合张昭/大乔使敌方受到伤害提升的爆发法师队。 三国志:王道天下周瑜武将详解: 一、周瑜武将解析 周瑜 强度评级:T0 7将御输出将 50级面板: 武力102.4,智力228.8,统率188.1,速度66.5。 满级智力全游戏第3...

夜幕之下界面及战斗体系详解

夜幕之下怎么操作角色战斗,本篇介绍游戏内的基础的战斗规则,包括战斗的基本规则、选卡界面信息、局内战斗信息等,boss/精英怪有白条(下面统称白条怪),只有对应的弱点属性(欲望)可以降低、打掉白条。白条存在时有高额减伤,白条打掉瞬间可以打断怪的招式并眩晕约5s。 夜幕之下界面及战斗体系详解: 一、基本规则 1、通关条件 战斗有时间限制。材料副本没有星级,只要倒计时结束前完成即可,也没有死亡人数限制。...