winput=env["wsgi.input"]
params=cgi.FieldStorage(fp=io.StringIO(winput.read(int(env.get("CONTENT_LENGTH","0"))).decode("ISO-8859-1")),environ=env,keep_blank_values=1)
print(params["file"].name)
print(params["file"].filename.encode("ISO-8859-1").decode("UTF-8"))
print(params["file"].value.encode("ISO-8859-1"))
params=cgi.FieldStorage(fp=io.StringIO(winput.read(int(env.get("CONTENT_LENGTH","0"))).decode("ISO-8859-1")),environ=env,keep_blank_values=1)
这句代码有必要解释一下:
1、不能直接用winput。如果直接使用wsgi.input,readline出来的都是bytes,而在cgi.FieldStorage里判断全部用的是字符串,在bytes隐式转换为str时会自动加b'',导致判断不成功,知道最后一条readline语句,服务器一直等待输入。。
2、必须使用decode对wsgi.input读取的数据进行解码,不能用str(),原因同上
3、FieldStorage解释完成后得到的value是字符串,如果你上传的是图片或者其他二进制数据,就要再将字符串encode成bytes
4、在上面的代码中filename被FieldStorage解释完毕后是被decode成ISO-8859-1编码的字符串,如果存在中文,就必须用encode再decode
总结:
FieldStorage里的代码好象还是2.x时候的代码,没有考虑到wsgi.input获取到的是bytes的情况。自己处理编码确实很麻烦。哪位仁兄写个增强版的出来请告诉我。
分享到:
- 2009-04-12 14:53
- 浏览 4905
- 评论(0)
- 论坛回复 / 浏览 (0 / 3820)
- 查看更多
相关推荐
Polygon3-3.0.9.1-cp39-cp39-win_amd64.whl python模块名称:Polygon3 文件格式:whl 安装方式:切换到whl路径,执行pip install Polygon3-3.0.9.1-cp39-cp39-win_amd64.whl
python库。 资源全名:gm-3.0.0.14-py3-none-win32.whl
综上所述,Polygon3-3.0.9.1-cp36-cp36m-linux_aarch64.zip是一个专为Python 3.6和Linux aarch64系统设计的图形处理库,其提供的强大功能和高效性能,使得开发者在处理三维几何问题时有了得力的工具。无论是进行科学...
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-3.0.122.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
这条命令会告诉pip安装指定的whl文件,一旦安装成功,你就可以在Python环境中导入并使用Polygon3模块了。 Polygon3模块的核心功能包括但不限于以下几点: 1. **几何对象的创建**:可以创建点、线段、平面、多边形...
7. **性能优化**:由于其底层实现通常用C++编写,因此在处理大量几何数据时,Polygon3通常能提供良好的性能。 "使用说明.txt"文件可能包含了关于如何利用Polygon3库的详细指导,包括安装后的初始化、对象创建、常用...
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-cdn-3.0.403.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
审计系统在IT领域中扮演着至关重要的角色,它能记录系统中的各种活动,帮助管理员检测潜在的安全威胁、合规性问题以及性能瓶颈。 审计系统的核心组件是auditd服务,它负责收集和处理来自内核的审计事件。"audit-3.0...
在安装和使用"sonar-scanner-cli-3.0.3.778-windows.zip"时,首先需要解压文件,你会得到一个包含"sonar"文件的目录。这个目录中可能包含以下关键文件: 1. `bin` 目录:这个目录包含了不同操作系统平台下的可执行...
这样,pip会自动处理文件并将其安装到你的Python环境的site-packages目录下,使得其他Python脚本能够导入并使用Polygon3模块。 在压缩包中,除了主的.whl文件外,还有一个名为"使用说明.txt"的文档。这通常包含关于...
tensorrt 8.2.3.0版本 python库安装 whl文件,安装只需要切换到对应whl目录然后执行pip install [whl文件名],注意cp表示python版本,比如cp38表示是python3.8的环境,amd64表示是windows x64系统
安装完成后,开发者可以在 Python 脚本中导入 wx 模块开始使用 wxPython。 **基本使用示例** ```python import wx app = wx.App() frame = wx.Frame(None, title='Hello wxPython') frame.Show(True) app....
《Python库 Tencentcloud-sdk-python-ecm-3.0.311详解》 在Python编程领域,库的使用是提升开发效率的关键。Tencentcloud-sdk-python-ecm-3.0.311是一个专门为Python开发者设计的腾讯云SDK,它提供了与腾讯云边缘...
4. **多语言支持**:Redis提供了丰富的客户端库,包括Python、Java、C#、PHP、Node.js等,方便开发者在各种语言环境中使用。 5. **事务**:Redis支持事务功能,允许用户一次性执行多个命令,保证命令的原子性。 6....
在实际开发中,Tencentcloud SDK Python还提供了异常处理、请求重试、日志记录等功能,帮助开发者构建健壮的应用。同时,其API设计遵循RESTful原则,易于理解和使用。 总的来说,Tencentcloud SDK Python是连接...
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-cwp-3.0.486.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源全名:gm-3.0.0.28-py2-none-win_amd64.whl" 暗示了该文件是一个可以解压并直接在Python环境中使用的库。一旦安装,它将为Python项目提供特定的功能或服务。 标签 "python 开发语言 Python库" 强调了这个资源是...
总的来说,Redis-x64-3.0.504是一个在Windows上易于部署和使用的高效键值存储系统,它的多数据结构、高速性能、丰富的功能和良好的扩展性,使其成为许多开发人员和企业的首选数据存储方案。正确理解和运用Redis的...
资源来自pypi官网。 资源全名:cryptography-3.0-cp38-cp38-win_amd64.whl
资源分类:Python库 所属语言:Python 资源全名:xquant_python-3.0.290-cp36-none-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059