python常用库之WSGI工具包werkzeug

文章目录

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请求路由系统

安装

bash 复制代码
pip install -U Werkzeug

使用

A Simple Example

python 复制代码
from werkzeug.wrappers import Request, Response

@Request.application
def application(request):
    return Response('Hello, World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, application)

werkzeug.datastructures.FileStorage

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

werkzeug.datastructures.FileStorage:

FileStorage 是 Werkzeug 提供的一个类,用于处理文件上传和处理表单中的文件字段。

它提供了一种方便的方式来处理客户端上传的文件,包括访问文件名、文件类型、文件大小、读取文件内容等操作。

FileStorage 对象可以通过 Werkzeug 的请求对象 request 中的 files 属性进行访问,用于处理上传的文件数据。

python 复制代码
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)
相关推荐
2501_921649492 分钟前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融
qq_448011167 分钟前
python HTTP请求同时返回为JSON的异常处理
python·http·json
棒棒的皮皮13 分钟前
【OpenCV】Python图像处理几何变换之翻转
图像处理·python·opencv·计算机视觉
集智飞行40 分钟前
c++函数传参的几种推荐方式
开发语言·c++
CodeCraft Studio44 分钟前
国产化PPT处理控件Spire.Presentation教程:使用Python将图片批量转换为PPT
python·opencv·powerpoint·ppt文档开发·ppt组件库·ppt api
鼾声鼾语1 小时前
matlab的ros2发布的消息,局域网内其他设备收不到情况吗?但是matlab可以订阅其他局域网的ros2发布的消息(问题总结)
开发语言·人工智能·深度学习·算法·matlab·isaaclab
五阿哥永琪1 小时前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python
Data_agent1 小时前
Python编程实战:从类与对象到设计优雅
爬虫·python
Swizard1 小时前
别再迷信“准确率”了!一文读懂 AI 图像分割的黄金标尺 —— Dice 系数
python·算法·训练
麦麦鸡腿堡1 小时前
Java_类的加载
java·开发语言