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

flask 获取各种请求数据:GET form-data x-www-form-urlencoded JSON headers 上传文件

在 Flask 里,能使用多种方法获取不同类型的请求数据,下面详细介绍常见请求数据的获取方式。

获取查询字符串参数(GET 请求)

查询字符串参数一般在 URL 里,以 ?key1=value1&key2=value2 这种形式存在。可通过 request.args 来获取。

from flask import Flask, requestapp = Flask(__name__)@app.route('/get_params')
def get_params():# 获取单个参数name = request.args.get('name')age = request.args.get('age', type=int)  # 指定参数类型# 获取所有参数all_params = request.args.to_dict()return f"Name: {name}, Age: {age}, All params: {all_params}"if __name__ == '__main__':app.run(debug=True)

1

获取表单数据(POST 请求)

表单数据通常由 HTML 表单提交,能通过 request.form 来获取 form-datax-www-form-urlencoded 数据。

from flask import Flask, requestapp = Flask(__name__)@app.route('/submit_form', methods=['POST'])
def submit_form():# 获取单个表单字段username = request.form.get('username')password = request.form.get('password')# 获取所有表单字段all_form_data = request.form.to_dict()return f"Username: {username}, Password: {password}, All form data: {all_form_data}"if __name__ == '__main__':app.run(debug=True)

1
1

获取 JSON 数据(POST、PUT 等请求)

如果请求数据是 JSON 格式,可使用 request.get_json() 方法获取。

from flask import Flask, requestapp = Flask(__name__)@app.route('/submit_json', methods=['POST'])
def submit_json():# 获取 JSON 数据data = request.get_json()if data:name = data.get('name')age = data.get('age')return f"Name: {name}, Age: {age}"else:return "No valid JSON data provided", 400if __name__ == '__main__':app.run(debug=True)

2

获取请求头信息

请求头信息可通过 request.headers 来获取。

from flask import Flask, requestapp = Flask(__name__)@app.route('/get_headers')
def get_headers():# 获取单个请求头user_agent = request.headers.get('User-Agent')# 获取所有请求头all_headers = dict(request.headers)return f"User-Agent: {user_agent}, All headers: {all_headers}"if __name__ == '__main__':app.run(debug=True)

1

获取上传文件

文件上传请求的数据能通过 request.files 来获取。

from flask import Flask, requestapp = Flask(__name__)@app.route('/upload_file', methods=['POST'])
def upload_file():# 获取上传的文件file = request.files.get('file')if file:# 保存文件file.save('uploaded_file.txt')return "File uploaded successfully"else:return "No file provided", 400if __name__ == '__main__':app.run(debug=True)

1

同时获取 URL 查询字符串参数和表单数据

在 Flask 里, request.values 是一个特殊的 MultiDict 对象,它将 request.args (用于获取 URL 查询字符串参数)和 request.form (用于获取表单数据)结合起来,提供了一种统一的方式来访问 GET 和 POST 请求中的数据。

from flask import Flask, requestapp = Flask(__name__)@app.route('/mixed_data', methods=['GET', 'POST'])
def mixed_data():param1 = request.values.get('param1')param2 = request.values.get('param2')return f"Param1: {param1}, Param2: {param2}"if __name__ == '__main__':app.run(debug=True)

1

  • request.values 会优先获取表单数据,如果表单数据和查询字符串参数有同名的键,会返回表单数据的值。
  • 对于 JSON 数据和文件上传数据, request.values 无法获取,需要使用 request.get_json()request.files 来处理。

参考链接

https://dormousehole.readthedocs.io/en/latest/api.html#flask.Request.args

相关文章:

  • 物联网智能项目之——智能家居项目的实现!
  • 开源项目实战学习之YOLO11:ultralytics-cfg-models-rtdetr(十一)
  • 循环缓冲区
  • 实验-组合电路设计1-全加器和加法器(数字逻辑)
  • 大数据:驱动技术创新与产业转型的引擎
  • 节流 和 防抖的使用
  • 【C语言练习】018. 定义和初始化结构体
  • ai之paddleOCR 识别PDF python312和paddle版本冲突 GLIBCXX_3.4.30
  • 提升办公效率的PDF转图片实用工具
  • 学习黑客资产威胁分析贴
  • 《MATLAB实战训练营:从入门到工业级应用》趣味入门篇-用声音合成玩音乐:MATLAB电子琴制作(超级趣味实践版)
  • NocoDB:开源的 Airtable 替代方案
  • 二叉树最近公共祖先(后序遍历,回溯算法)
  • springboot war包tomcat中运行报错,启动过滤器异常,一个或多个筛选器启动失败。
  • 关于Python:7. Python数据库操作
  • 经典算法 求解硬币组成问题
  • 基于大模型的肾结石诊疗全流程风险预测与方案制定研究报告
  • 软件测评如何保障质量与提升体验?从五方面详细说说
  • JSON 处理笔记
  • 接上篇,解决FramePack启动报错:“httpx.ReadError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。“的问题
  • 央行将增加3000亿元科技创新和技术改造再贷款额度
  • 青年与城市共成长,第六届上海创新创业青年50人论坛将举办
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 特朗普要征100%关税,好莱坞这批境外摄制新片能躲过吗?
  • 库里22分赢下抢七大战,火箭十年难破“火勇大战”的魔咒
  • 最长3个月免费住宿,南昌人才驿站(洪漂驿站)申请指南发布