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

Python Flask request中常见存储参数的介绍

Python Flask request中常见存储参数的介绍

首先从flask模块中导入请求对象:

from flask import request

request.form

通过method属性可以操作当前请求方法,通过使用form属性处理表单数据(本质也是得到一个字典,如果传输的是字典也可以用form)默认的数据类型时ImmutableMultiDict,可以通过parameter_storage_lass改变数据类型。一个简单的例子:

@app.route('/predict', methods=['POST', 'GET'])
def predict():if request.method == "POST":img_url = request.form['IMG_URL']#或者通过get获取img_url = request.form.get('IMG_URL')if img_url is None:return jsonify({'error':'No data was got'}), 400return img_url

当form属性中不存在这个key时,会引发一个KeyError,会显示一个HTTP400 Bad Request的错误页面,多数情况下可以不用处理这个问题。

request.args

要操作URL(如?key=value)中提交的参数,可以使用args属性。默认的数据类型也是ImmutableMultiDict,可以通过parameter_storage_class改变数据类型。参数获取和form相同

url = 'http://170.0.0.1:5000/pre?id=1&name=zane'
#返回值是{"id" : "1", "name" : "zane"}
#获取某个具体参数:
id = request.args['id']
id = request.args.get('id')

request.values

values结合form和args,默认类型是CombinedMultiDict,可以用values替代form和args。

request.data

data返回的是bytes类型数据,通常传递base64编码的图像数据,会用到data。

base64data = request.data
data = base.b64decode(base64data)
data = np.fromstring(data, np.uint8)
img = cv2.imdecode(data, cv2.IMREAD_COLOR)

request.json

当在Header中设置 Content-Type:application/json,获取的数据降被转换成json数据,不能使用data进行获取,只能用json获取。

request.files

files用于处理文件上传,前提需要设置HTML表单中enctype="multipart/from-data"属性。已上传的文件,被存储在内存活文件系统的临时位置,通过files属性来访问上传文件,每个上传文件都存储在字典属性中,该属性和Python file对象一样,多出一个save()方法。

def allowed_file(filename):return '.' in filename and \filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS@app.route('/', methods=['GET', 'POST'])
def upload_file():if request.method == 'POST':# check if the post request has the file partif 'file' not in request.files:flash('No file part')return redirect(request.url)file = request.files['file']# if user does not select file, browser also# submit an empty part without filenameif file.filename == '':flash('No selected file')return redirect(request.url)if file and allowed_file(file.filename):filename = secure_filename(file.filename)file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))return redirect(url_for('uploaded_file',filename=filename))return '''<!doctype html><title>Upload new File</title><h1>Upload new File</h1><form method=post enctype=multipart/form-data><input type=file name=file><input type=submit value=Upload></form>'''

在使用文件上传的时候,也可以通过Flask-Uploads扩展来实现,这个扩展实现了完整的上传机制,还具有白名单、黑名单等功能。

相关文章:

Python Flask request中常见存储参数的介绍

Python Flask request中常见存储参数的介绍 首先从flask模块中导入请求对象&#xff1a; from flask import requestrequest.form 通过method属性可以操作当前请求方法&#xff0c;通过使用form属性处理表单数据&#xff08;本质也是得到一个字典&#xff0c;如果传输的是字…...

php+vue网盘系统的设计与实现

该网盘系统的开发和设计根据用户的实际情况出发&#xff0c;对系统的需求进行了详细的分析&#xff0c;然后进行系统的整体设计&#xff0c;最后通过测试使得系统设计的更加完整&#xff0c;可以实现系统中所有的功能&#xff0c;在开始编写论文之前亲自到图书馆借阅php书籍&am…...

[前端]深浅拷贝

一、回顾变量类型 基础类型 boolean&#xff08;bool&#xff09; number string null undefined 引用类型 object ​ function ​ array 基本类型与引用类型的存储 基本类型一般存储在 栈 (栈小) 栈一旦确认 大小就固定 可能会造成溢出栈一般是先进后出用于存储…...

文章纠错免费软件-文字校对软件免费下载

自动校对稿件的软件 自动校对稿件的软件是一种基于自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;和机器学习&#xff08;Machine Learning&#xff09;技术的工具&#xff0c;可以较为准确地检测和纠正文本中出现的语法、拼写、标点符号以及其他笔误…...

【Redis】Redis缓存雪崩、缓存穿透、缓存击穿(热key问题)

目录 一、缓存穿透 1、概念 2、解决办法 1.缓存空对象 2.布隆过滤 二、缓存雪崩 1、概念 2、解决办法 1.给key设置随机的过期时间TTL 2.业务添加多级缓存 3.利用集群提供服务可用性 4.缓存业务添加降级限流 三、缓存击穿 1、概念 2、解决办法 1.互斥锁 2.逻辑…...

为什么很多程序员喜欢linux系统?

a> Linux哪些行业在运用&#xff1f; Linux系统运用极其广泛&#xff0c;不少用户只知道windows&#xff0c;是因为&#xff0c;Linux的运用主要是在企业端。现在科技极其发达&#xff0c;我们手机在手&#xff0c;就能干很多事情&#xff0c;只需点一点屏幕&#xff0c;轻松…...

Bean 作用域和生命周期

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 lombok的使用案例引入作用域定义singleton单例作用域prototype原型作用域(多例作用域)request请求作用域session会话作用域ap…...

PMP考试常见13个固定套路

一、变更批准之后 变更批准后要做三件事: 1、在变更日志中记录 2、通知相关干系人 3、更新项目管理计划 二、风险的情景题 1、先判断风险识别了&#xff0c;还是风险发生了。 2、若是风险识别&#xff0c;按风险管理程序走; 3、若是风险发生&#xff0c;则应采取应急措施…...

Leecode101 ——对称二叉树

对称二叉树:Leecode 101 leecode 101 对称二叉树 根据题目描述&#xff0c;首先想清楚&#xff0c;对称二叉树要比较的是哪两个节点。对于二叉树是否对称&#xff0c;要比较的是根节点的左子树与根节点的右子树是不是相互翻转的&#xff0c;其实也就是比较两个树&#xff0c;…...

JVM学习随笔03——Java堆中new一个对象的步骤

目录 一、进行类加载 二、堆中分配内存 1、怎么输出GC日志&#xff1a; 2、内存分配的两种方式&#xff1a; 3、内存分配过程中并发控制的两种方式&#xff1a; 三、内存空间初始化 四、对象头初始化&#xff08;对象头包含哪些信息&#xff1f;&#xff09; 五、执行构…...

虹科方案 | CEMEX 使用HK-Edgility 智能边缘计算平台简化其企业 WAN 管理和运营

一、应对价值 130 亿美元的跨国企业的网络挑战 “我们选择 Edgility 是因为其卓越的管理和协调功能&#xff0c;它为我们提供了一个端到端的工具集&#xff0c;可以经济高效地部署和管理我们边缘设备的生命周期。” —— Fernando Garcia -Villaraco Casero, CEMEX 全球IT 战略…...

rk3568 系统移植和编译

1。 硬件问题 尽量根据原版 evb 开发版 pcb 进行布线和移植&#xff0c;切记不可自行走线。 emmc 和 ddr4 选型都有要求的&#xff0c;按照硬件手册进行设计 2。软件问题 2.1 目前固件系统选用1.3.2 版本进行设计 解压后运行 .repo/repo/repo sync -c 更新代码 2.2 ubo…...

深度解析C++异常处理机制:分类、处理方式、常见错误及11新增功能

C 基础知识 八 异常处理 上篇 一、基础1. 异常的概念2. 异常的分类2.1 内置异常2.2 自定义异常 3. 异常的处理方式3.1 try-catch 语句3.2 throw 语句3.3 noexcept 修饰符3.4 finally 语句块 二、 异常处理机制1 try-catch 语句块2 异常处理流程3 标准异常类 三、 抛出异常1 thr…...

FPGA时序约束(四)主时钟、虚拟时钟和时钟特性的约束

系列文章目录 FPGA时序约束&#xff08;一&#xff09;基本概念入门及简单语法 FPGA时序约束&#xff08;二&#xff09;利用Quartus18对Altera进行时序约束 FPGA时序约束&#xff08;三&#xff09;时序约束基本路径的深入分析 文章目录 系列文章目录前言主时钟约束跨时钟域…...

JNI开发

文件结构&#xff08;选中的为生成的&#xff09; CMake构建不需要执行命令&#xff0c;会自动生成so文件打包进apk Android mk构建需要执行命令生成so文件&#xff0c;再打包进apk。命令如下。 # 在jni目录下执行 # 生成com_demo_cppproject_OtherNdkTest.h头文件 javac -h .…...

JAVA有哪些特点?

JAVA有以下特点&#xff1a; 综上所述&#xff0c;Java作为一种先进的面向对象编程语言&#xff0c;具有简单、可移植、健壮、高性能、多线程、动态性、跨平台、开放性和安全性等众多特点&#xff0c;已经成为广泛使用的编程语言之一。 简单易学&#xff1a;JAVA语言的语法与C语…...

使用读写锁提高并发

我们想要的是&#xff1a;允许多个线程同时读&#xff0c;但只要有一个线程在写&#xff0c;其他线程就必须等待。 ReadWriteLock ReadWriteLock的作用&#xff1a; 只允许一个线程写入&#xff08;其他线程既不能写入也不能读取&#xff09;&#xff1b;没有写入时&#xf…...

使用@PropertySource加载配置文件

1.PropertySource和PropertySources注解 1.1.PropertySource注解概述 PropertySource注解是Spring 3.1开始引入的配置类注解。通过**PropertySource注解可以将properties配置文件中的key/value存储到Spring的Environment中&#xff0c;Environment接口提供了方法去读取配置文…...

事务及分布式事务解决方案

基础概念 1.1.事务 事务可以看做是一次大的活动&#xff0c;它由不同的小活动组成&#xff0c;这些活动要么全部成功&#xff0c;要么全部失败。 1.2.本地事务 在计算机系统中&#xff0c;更多的是通过关系型数据库来控制事务&#xff0c;利用数据库本身的事务特性来实现&a…...

【思科、华为、华三、锐捷网络设备巡检命令】

华三 screen-1ength disable 取消分页 displayversion 查看版本 displayclock 查看日期时钟 displayfan 查看风扇状态 displaypower 查看电源信息 displaycpu-usage 查看CPU利用率 displaymemory 查看内存利用率 display environment 查看温度信息 display device 查看设备信息…...

实战演练:在快马平台模拟环境中验证智能车赛高级策略

作为一名参加过智能车竞赛的选手&#xff0c;我深知算法策略验证的重要性。以往我们需要反复在实车上调试&#xff0c;既耗时又容易损坏硬件。最近发现InsCode(快马)平台的模拟环境特别适合做赛前验证&#xff0c;今天就分享如何用它搭建完整的智能车策略测试系统。 赛道环境建…...

微软Phi-3-mini保姆级教程:一键部署,快速体验文本生成

微软Phi-3-mini保姆级教程&#xff1a;一键部署&#xff0c;快速体验文本生成 1. 镜像简介与特点 1.1 模型背景 Phi-3-mini-4k-instruct-gguf是微软推出的轻量级文本生成模型&#xff0c;属于Phi-3系列中的高效版本。这个模型特别适合处理问答、文本改写、摘要整理等常见文本…...

如何在Windows系统上3分钟搞定PDF处理:Poppler预编译包终极指南

如何在Windows系统上3分钟搞定PDF处理&#xff1a;Poppler预编译包终极指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows上的PDF处…...

Flowable UI 6.6.0 生产环境部署踩坑实录:从H2内存库迁移到PostgreSQL的全过程

Flowable UI 6.6.0 生产环境部署实战&#xff1a;从H2到PostgreSQL的完整迁移指南 当你第一次接触Flowable UI时&#xff0c;可能会被它默认的H2内存数据库所迷惑——启动简单&#xff0c;但重启后数据全无。这种配置显然不适合生产环境。本文将带你深入实战&#xff0c;完成从…...

从唤醒到合成:基于讯飞、VOSK与DeepSeek的纯离线语音助手全链路实践

1. 纯离线语音助手的技术价值与应用场景 在智能设备普及的今天&#xff0c;语音交互已经成为人机交互的重要方式。但大多数语音助手都需要依赖云端服务&#xff0c;这意味着用户的语音数据需要上传到服务器进行处理。而基于讯飞唤醒、VOSK语音识别和DeepSeek大模型的纯离线方案…...

如何评估Android测试自动化成熟度:从入门到精通的完整指南

如何评估Android测试自动化成熟度&#xff1a;从入门到精通的完整指南 【免费下载链接】testing-samples A collection of samples demonstrating different frameworks and techniques for automated testing 项目地址: https://gitcode.com/gh_mirrors/te/testing-samples …...

机器学习周报三十九

文章目录摘要Abstract1.TurboDiffusion1.1 注意力改进1.2蒸馏模型1.3权重量化2 训练和推理2.1 训练阶段2.2 推理阶段3 Make It Count3.1数据集3.2损失函数总结摘要 本周阅读了清华大学的论文《TurboDiffusion: Accelerating Video Diffusion Models by 100–200 Times》&#…...

实战指南:利用JPerf优化嵌入式网络性能测试

1. JPerf工具基础入门&#xff1a;从零开始网络性能测试 第一次接触嵌入式网络性能测试时&#xff0c;我被各种专业术语和复杂参数搞得晕头转向。直到发现了JPerf这个神器&#xff0c;才真正打开了网络调优的大门。JPerf实际上是iPerf的图形化版本&#xff0c;它把原本需要记忆…...

S2-Pro跨语言编程能力评测:根据中文注释生成多国语言代码

S2-Pro跨语言编程能力评测&#xff1a;根据中文注释生成多国语言代码 1. 评测背景与目标 在软件开发领域&#xff0c;跨语言编程能力正变得越来越重要。开发者经常需要在不同技术栈间切换&#xff0c;或者将一个语言的算法实现迁移到另一个语言。传统方式下&#xff0c;这需要…...

机械革命(MECHREUO)星耀玩机技巧

BIOS快捷键开机按F2FN健常锁FnEsc...