python常用库之WSGI工具包werkzeug

文章目录

  • python常用库之WSGI工具包werkzeug
    • 什么是Werkzeug
      • 功能特性
    • 安装
    • 使用
      • werkzeug.datastructures.FileStorage

python常用库之WSGI工具包werkzeug

什么是Werkzeug

官网:https://palletsprojects.com/p/werkzeug/
官方文档:https://werkzeug.palletsprojects.com/en/2.2.x/
github:https://github.com/pallets/werkzeug/

werkzeug德语名词:“工具”。词源:werk(“工作”),zeug(“东西”)

Werkzeug 是一个全面的WSGI Web 应用程序库。它最初是 WSGI 应用程序的各种实用程序的简单集合,现已成为最先进的 WSGI 实用程序库之一。

Flask封装了 Werkzeug,用它来处理 WSGI 的细节,同时提供更多的结构和模式来定义强大的应用程序。

Werkzeug 支持 Unicode,并且不强制执行任何依赖项。由开发人员选择模板引擎、数据库适配器,甚至如何处理请求。它可用于构建各种最终用户应用程序,例如博客、wiki 或公告板。

总结:werkzeug 官方的介绍说是一个 WSGI 工具包,不是一个web服务器,也不是一个web框架,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西。

功能特性

  • HTTP头解析与封装
  • 易于使用的request和response对象
  • 基于浏览器的交互式JavaScript调试器
  • 与 WSGI 1.0 规范100%兼容
  • 支持Python 2.6,Python 2.7和Python3.3
  • 支持Unicode
  • 支持基本的会话管理及签名Cookie
  • 支持URI和IRI的Unicode使用工具
  • 内置支持兼容各种浏览器和WSGI服务器的实用工具
  • 集成URL请求路由系统

安装

pip install -U Werkzeug

使用

A Simple Example

from werkzeug.wrappers import Request, Response@Request.application
def application(request):return Response('Hello, World!')if __name__ == '__main__':from werkzeug.serving import run_simplerun_simple('localhost', 4000, application)

werkzeug.datastructures.FileStorage

werkzeug.datastructures.FileStorage 是 Werkzeug 工具库中的1个模块。

werkzeug.datastructures.FileStorage:
FileStorage 是 Werkzeug 提供的一个类,用于处理文件上传和处理表单中的文件字段。
它提供了一种方便的方式来处理客户端上传的文件,包括访问文件名、文件类型、文件大小、读取文件内容等操作。
FileStorage 对象可以通过 Werkzeug 的请求对象 request 中的 files 属性进行访问,用于处理上传的文件数据。

from werkzeug.datastructures import FileStorage# 处理上传的文件
def handle_upload(file):if isinstance(file, FileStorage):# 访问文件名filename = file.filename# 访问文件类型content_type = file.content_type# 访问文件大小file_size = file.content_length# 读取文件内容file_content = file.read()# 在这里可以对文件进行进一步处理# 从请求中获取上传的文件
uploaded_file = request.files.get('file')
handle_upload(uploaded_file)

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

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

相关文章

信号与系统学习笔记——信号的分类

目录 一、确定与随机 二、连续与离散 三、周期与非周期 判断是否为周期函数 离散信号的周期 结论 四、能量与功率 定义 结论 五、因果与反因果 六、阶跃函数 定义 性质 七、冲激函数 定义 重要关系 作用 一、确定与随机 确定信号:可以确定时间函数…

HTML5、CSS3面试题(一)

1、H5 的新特性有哪些?C3 的新特性有哪些?(必会) H5 新特性 1、拖拽释放(Drap and drop) API ondrop 拖放是一种常见的特性,即抓取对象以后拖到另一个位置 在 HTML5 中,拖放是标准的一部分,任…

uniapp移动端 IOS系统下无法与webview通信

不知道有没有人遇到过这个问题 我的页面嵌套了一个webview(文件位于项目的hybrif/html)目录下 使用evalJS与webview进行通信 代码如下 在安卓里运行是没问题的,但在苹果手机上一直无法通信 连接真机,打印evalJS是个方法&#xf…

GEE:关于遥感生态指数(RSEI)的若干疑问

作者:CSDN @ _养乐多_ 本文记录了若干关于在 Google Earth Engine (GEE)平台上,计算基于主成分分析(PCA)的遥感生态指数(RSEI)的问题。并记录了解决这些问题的一些答案。问题包括,主成分分析的特征值的正负,主成分的占比,去云后空值像素的处理方法,异常值处理方法…

C语言中内存函数的使用

memcpy函数的使用和模拟实现 memcpy的使用 函数使用说明: • 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 • 这个函数在遇到 \0 的时候并不会停下来。 • 如果source和destination有任何的重叠,复制的结…

【python】centos 8新装python3.10.0

1.python源码包准备 2.gcc环境安装 如果系统已具备,可以略过。 有的已经自带了gcc,但是如果编译时启动优化的话,如果gcc版本过老就必须要升级。 3.make环境安装 如果系统已具备,可以略过。 4.更新openssl版本(很重…

【ES6】let与const

目录 let命令 作用域 无变量提升 不允许重复声明 暂时性死区 块级作用域 函数能否在块级作用域中声明 const命令 let命令 作用域 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是作用域不同,let命令只在所在的代码块内…

C# 根据两点名称,寻找两短路程的最优解,【有数据库设计,完整代码】

前言 如果我们遇到路径问题,可以使用点点连线,给定一个点,可以到达另外几个点,寻找最优解 例:如下图所示,如果要从A1-C1,可以有三条路 1.A1-B1-C1 2.A1-B2-C1 3.A1-B3-C1 最优解肯定是A1-B1-C1&#xff0c…

Java代码审计安全篇-XXE(XML外部实体注入)漏洞

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望各…

软考77-上午题-【面向对象技术3-设计模式】-创建型设计模式02

一、生成器模式 1-1、意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 1-2、结构图 Builder 为创建一个 Product 对象的各个部件指定抽象接口。ConcreteBuilder 实现 Builder 的接口以构造和装配该产品的各个部件,定…

3.14word直播知识点

word图表: 找到数据源→插入→图表→组合→带数据标签的折线图(次要坐标轴)→设计选项卡→切换行列(excel不能关)→(单击右键,设置数据系列格式)设置最大最小值→刻度单位→标签为无…

docker部署mysql5

1. 进入面板 2. 新建挂载文件夹 新建三个文件夹: mkdir -p /docker/mysql5/config && mkdir -p /docker/mysql5/data && mkdir -p /docker/mysql5/logsconfig:存放mysql配置data:存放mysql数据logs:存放mysql记录日志 3.…

css设置选中文字和选中图片字的颜色

要改变页面中选中文字的颜色,可以使用 CSS 的 ::selection 伪元素来实现 *::selection {/* 改变选中文字的背景色 */background-color: #c42121;/* 改变选中文字的文本颜色 */color: #fff; } 用通配符选择器给所有元素都加上了 ::selection伪元素,用于…

GPT实战系列-如何让LangChain的Agent选择工具

GPT实战系列-如何让LangChain的Agent选择工具 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法…

这个不需要吗 HttpServletRequest req

这个不需要吗 HttpServletRequest req 在这个特定场景下,您在OnlineStudentFeignService接口中确实不需要直接使用HttpServletRequest对象。因为Feign是一个声明式的HTTP客户端,它的设计目标是简化服务间的远程调用,它并不直接处理原始的HTT…

先验分布、后验分布、极大似然的一点思考

今天和组里同事聊天的时候,无意中提到了贝叶斯统计里先验分布、后验分布、以及极大似然估计这三个概念。同事专门研究如何利用条件概率做系统辨识的,给我画了一幅图印象非常深刻: 其中k表示时序关系。上面这个图表示后验分布是由先验分布与似…

SparkSQL读取本地文件写入MySQL

unit1:LoggerLevel 思路在main代码中,读取的文件要注意格式。 package com.unitsimport org.apache.log4j.{Level, Logger}trait LoggerLevel {Logger.getLogger("org").setLevel(Level.ERROR) }unit2:getLocalSparkSession pac…

2024年云服务器ECS价格表出炉——阿里云

2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…

深入理解TCP的四次分手过程

文章目录 深入理解TCP的四次分手过程四次分手的意义四次分手的工作原理四次分手的重要性实际应用中的考虑结论补充:TIME_WAIT在哪一步?TIME_WAIT状态的目的TIME_WAIT状态的影响 深入理解TCP的四次分手过程 在网络通信中,TCP(传输控制协议)确…

在Linux/Ubuntu/Debian中使用7z压缩和解压文件

要在 Ubuntu 上使用 7-Zip 创建 7z 存档文件,你可以使用“7z”命令行工具。 操作方法如下: 安装 p7zip: 如果你尚未在 Ubuntu 系统上安装 p7zip(7-Zip 的命令行版本),你可以使用以下命令安装它:…