[python][flask]flask接受get或者post参数

在 Flask 中,可以通过 request 对象来获取客户端通过 GET 或 POST 方法发送的参数。以下是如何在 Flask 中接收 GET 和 POST 参数的详细说明:

1. 接收 GET 参数

GET 请求的参数通常通过 URL 的查询字符串传递。例如,对于 URL http://example.com/?name=Kimi&age=25,可以通过 request.args 获取这些参数。

from flask import Flask, requestapp = Flask(__name__)@app.route('/get_example')
def get_example():# 获取 GET 参数name = request.args.get('name', default='Guest')  # 默认值为 'Guest'age = request.args.get('age', default=0, type=int)  # 默认值为 0,且转换为整数return f"Hello, {name}! Your age is {age}."if __name__ == '__main__':app.run(debug=True)
  • request.args 是一个类似字典的对象,可以通过 .get() 方法获取参数值。

  • 如果参数不存在,可以通过 default 参数指定默认值。

  • 可以通过 type 参数指定参数的类型(如 intfloat 等)。

2. 接收 POST 参数

POST 请求的参数可以通过表单数据或 JSON 数据传递。

接收表单数据

如果客户端通过表单发送数据(Content-Type: application/x-www-form-urlencodedmultipart/form-data),可以通过 request.form 获取参数。

from flask import Flask, requestapp = Flask(__name__)@app.route('/post_example', methods=['POST'])
def post_example():# 获取 POST 表单参数name = request.form.get('name', default='Guest')  # 默认值为 'Guest'age = request.form.get('age', default=0, type=int)  # 默认值为 0,且转换为整数return f"Hello, {name}! Your age is {age}."if __name__ == '__main__':app.run(debug=True)

 

接收 JSON 数据

如果客户端发送 JSON 数据(Content-Type: application/json),可以通过 request.jsonrequest.get_json() 获取参数。

 

from flask import Flask, requestapp = Flask(__name__)@app.route('/json_example', methods=['POST'])
def json_example():# 获取 POST JSON 数据data = request.get_json()  # 或 request.jsonname = data.get('name', 'Guest')  # 默认值为 'Guest'age = data.get('age', 0)  # 默认值为 0return f"Hello, {name}! Your age is {age}."if __name__ == '__main__':app.run(debug=True)

3. 同时接收 GET 和 POST 参数

如果需要同时支持 GET 和 POST 方法,可以通过 request.argsrequest.form 分别获取对应的参数。

from flask import Flask, requestapp = Flask(__name__)@app.route('/example', methods=['GET', 'POST'])
def example():if request.method == 'GET':name = request.args.get('name', default='Guest')age = request.args.get('age', default=0, type=int)elif request.method == 'POST':name = request.form.get('name', default='Guest')age = request.form.get('age', default=0, type=int)return f"Hello, {name}! Your age is {age}."if __name__ == '__main__':app.run(debug=True)

 

4. 通用方法

如果需要同时支持表单数据和 JSON 数据,可以使用 request.values,它会合并 request.argsrequest.form

from flask import Flask, requestapp = Flask(__name__)@app.route('/example', methods=['GET', 'POST'])
def example():name = request.values.get('name', default='Guest')age = request.values.get('age', default=0, type=int)return f"Hello, {name}! Your age is {age}."if __name__ == '__main__':app.run(debug=True)

总结

  • GET 参数:通过 request.args 获取。

  • POST 表单参数:通过 request.form 获取。

  • POST JSON 参数:通过 request.jsonrequest.get_json() 获取。

  • 通用方法:使用 request.values 合并 GET 和 POST 参数。

根据实际需求选择合适的方式即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90567.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Creo 模块众多,企业如何按需灵活分配许可证资源?

在数字化设计与智能制造深入发展的当下,企业 CAD/CAE 工具的精细化管理越来越重要。Creo,作为 PTC 旗下一体化 3D CAD 平台,以其模块化、可扩展的产品架构,广泛应用于机械、装备、汽车、航空航天等行业。其丰富的模块库覆盖建模设…

【c++】提升用户体验:问答系统的交互优化实践——关于我用AI编写了一个聊天机器人……(12)

本期依旧使用豆包辅助完成代码。从功能到体验的转变上个版本已经实现了问答系统的核心功能:基于 TF-IDF 算法的问题匹配和回答。它能够读取训练数据,处理用户输入,并返回最相关的答案。但在用户体验方面还有很大提升空间。让我们看看改进版做…

Android UI 控件详解实践

一、UI 开发基础概念(初学者必看) 在学习具体控件前,先理解以下核心概念,能大幅降低后续学习难度: 1. View 与 ViewGroup 的关系 View:所有 UI 控件的基类(如 Button、TextView)&…

关于linux运维 出现高频的模块认知

一、Linux 基础核心(必掌握)核心工具:Shell 脚本、Systemd、用户权限管理、日志分析(journalctl、rsyslog)企业需求:中小型公司:需独立完成系统部署、故障排查,对脚本开发&#xff0…

手语式映射:Kinova Gen3 力控机械臂自适应控制的研究与应用

近日,美国明尼苏达大学研究团队在《从人手到机械臂:遥操作中运动技能具身化研究》中,成功开发出基于​​Kinova的7轴力控机械臂Gen3的智能控制系统。这项创新性技术通过人工智能算法,实现了人类手臂动作到机械臂运动的精准映射&am…

P5535 【XR-3】小道消息

题目描述 小 X 想探究小道消息传播的速度有多快,于是他做了一个社会实验。 有 n 个人,其中第 i 个人的衣服上有一个数 i1。小 X 发现了一个规律:当一个衣服上的数为 i 的人在某一天知道了一条信息,他会在第二天把这条信息告诉衣…

ChatGPT Agent架构深度解析:OpenAI如何构建统一智能体系统

引言:AI智能体的范式跃迁 2025年7月17日,OpenAI发布的ChatGPT Agent标志着对话式AI从“被动应答”向主动执行的历史性转变。这款融合Operator网页操作与Deep Research信息分析能力的新型智能体,通过统一架构设计实现了复杂任务的端到端自主执…

计算机网络(第八版)— 第2章课后习题参考答案

2-01 物理层要解决哪些问题?物理层的主要特点是什么?答:物理层要解决的主要问题:(1)物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异&#…

Hive【Hive架构及工作原理】

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

数据管理能力成熟度评估模型(DCMM)详解

数据管理能力成熟度评估模型(DCMM)详解 1. DCMM概述 数据管理能力成熟度评估模型(Data Management Capability Maturity Assessment Model, DCMM)是我国首个数据管理领域的国家标准(GB/T 36073-2018),由国家工业信息安全发展研究中心牵头制定。该模型为我国企业数据…

学习C++、QT---34(使用QT库实现串口调试助手01:解决串口调试助手的UI)

🌟 嗨,我是热爱嵌入式的涛涛同学!每日一言别害怕改变,走出舒适圈才能遇见更好的自己。串口调试助手项目好的现在我们来学习串口调试助手的项目,我们依旧是项目引领学习好的我们最后就是要做成一个类似我们市面上的串口…

Dockerfile 文件及指令详解

什么是Dockerfile 文件Dockerfile 文件是用于构建 docker 镜像的脚本文件,由一系列的指令构成。通过 docker build 命令构建镜像时,Dockerfile 文件中的指令会由上到下执行,每条 指令都将会构建出一个镜像层,这就是镜像的分层。因…

主流Java Redis客户端对决:Jedis、Lettuce与Redisson性能特性深度评测

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…

刷题日记0725

今日计划5道。2/5晚上被一些事影响了心神不宁,再加上感觉睡前做完时间有点紧,逃避的念头出现了。代码意思不进脑子了。做一道是一道。21. 合并两个有序链表默认构造​​:用于创建​​值为0的孤立节点​​(不连接其他节点&#xff…

从数据脱敏到SHAP解释:用Streamlit+XGBoost构建可复现的川崎病诊断系统

基于机器学习的川崎病辅助诊断工具,结合了数据预处理、模型训练、特征解释和交互式可视化。以下是深度解读:1. 技术架构框架:使用 Streamlit 构建 Web 应用,适合快速开发交互式数据科学应用。核心算法:XGBoost&#xf…

【C++详解】模板进阶 非类型模板参数,函数模板特化,类模板全特化、偏特化,模板分离编译

文章目录一、非类型模板参数应用场景二、模板的特化函数模板特化类模板特化全特化偏特化三、模板分离编译解决方法四、模板总结一、非类型模板参数 先前介绍的函数模板和类模板都是针对类型的类模板参数,非类型模板参数有哪些使用场景呢?我们先来看下面这…

10BASE-T1S核心机制——PLCA参数详解

导语: PLCA是10BASE-T1S的核心机制,了解PLCA才能更好地使用10BASE-T1。 本文将通过介绍具体配置,以及实战例子,带你掌握PLCA。 以下测试内容使用KUNHONG-U10BT1S-EVB设备测试, 设备符合IEEE 802.3cg标准&#xff0…

uniapp vue apk那边输入法遮挡页面内容

解决办法:pages.json配置如下{"globalStyle": {"app-plus": {"softinputMode": "adjustResize"}} }效果: 键盘弹出时自动调整窗口大小,所有内容上推(兼容性最佳)文件内容如下…

2507C++,系统服务0与1

原文 窗口上的系统调用通过,每个由系统调用(x64)或sysenter(x86)CPU指令调用的NTDLL.dll,如NTDLL的NtCreateFile的以下输出所示: 这里 0:000> u ntdll!NtCreateFile: 00007ffcc07fcb50 4c8bd1 mov r10,rcx 00007ffcc07fcb53 b855000000 mov eax,55h…

人工智能冗余:大语言模型为何有时表现不佳(以及我们能做些什么)

像 GPT - 4 这样的大语言模型(LLMs)彻底改变了我们与技术交互的方式。它们可以撰写文章、生成代码、回答问题,甚至帮助我们构思创意。但任何花时间使用过这些模型的人都知道,它们的输出有时会让人感觉……不太对劲。表述冗长、格式…