用cython构建的美味的多部分表单数据解析器。

multifruits的Python项目详细描述


多种水果

用cython构建的美味的多部分表单数据解析器。

安装

pip install multifruits

用法

multifruits有一个Parser类和两个助手:extract_filenameparse_content_disposition

Parser

Parser需要Content-Type头值和一个处理程序,它可以 定义以下一种或多种方法:

on_body_begin()on_part_begin()on_header(name:bytes,value:bytes)on_headers_complete()on_data(data:bytes)on_part_complete()on_body_complete()

示例:

frommultifruitsimportParserclassMyHandler:defon_part_begin(self):self.part=MyPart()defon_header(self,name,value):self.part.headers[name]=valuedefon_data(self,data):self.part.write(data)handler=MyHandler()parser=Parser(handler,request.headers['Content-Type'])parser.feed_data(request.body)# You can pass chunks

助手

parse_content_disposition

获取原始的Content-Disposition头值并返回部署类型 (attachmentform-datainline等等)以及解析为 字典。

示例:

dtype,params=parse_content_disposition(b'inline; filename="foo.html"')assertdtype==b'inline'assertparams=={b'filename':b'foo.html'}
extract_filename

parse_content_disposition中的参数作为dict并尝试 返回适当的str文件名(如filename*)。

示例:

assertextract_filename({b'filename*':"UTF-8''foo-ä-€.html".encode()})=='foo-ä-€.html'

从源构建

您需要安装有cython的virtualenv,然后:

git clone https://github.com/pyrates/multifruits
cd multifruits
make compile
python setup.py develop

测试

运行测试:

make test

致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Orika映射嵌套的多次出现元素   java SparkShell:org。阿帕奇。火花SparkException:任务不可序列化   java在maven中排除依赖关系   Java:为什么我不能修改类实例中的变量   java项目生命周期中何时应使用mvn版本?   java Hadoop mapreduce 2文件过滤?   java通过流从文件中读取单词   ssl如何在不修改Java应用程序源代码的情况下发送没有证书链的TLS客户端证书?   c#需要文件跟踪程序   java在Android中关闭并打开应用程序后停止处理程序   java如何使用@Scheduled(fixedDelay)注释启动和停止外部运行的作业   html Java servlet导出到Excel   在WebLogic中找不到java类异常,在TomCat中很好   OSX 10.7(Lion)上的java Lejos