开发者社区> 问答> 正文

适用于所有python框架的通用传入文件上载http请求对象

我正在开发一个SDK,该SDK可以验证传入的multipart / form-data文件并将其保存到服务器端的磁盘上。就像是:

sdk.upload(httpRequest, destinationPath, validationOptions) 我需要传入的http请求:字段名,文件名,文件和mime类型。

问题在于python框架具有不同的http请求对象:

Django:HttpRequest request.FILES包含文件 烧瓶:请求 request.files包含文件。 金字塔:request.POST包含文件。 对于files字典中的文件值对象,结构相同。

我需要的是一个统一/通用的http请求对象或另一种以一种方式处理该请求的解决方案。

可能的不便解决方案:

每个框架都有不同的实现:我想以一种通用的方式来处理它。 使用lib解析multipart / form-data:由于框架已经解析过一次,因此实际上将是重新解析。 其他语言的示例:

PHP:$ _FILES对象 NodeJS:可读流请求 ASP.NET:静态HttpContext.Current.Request

展开
收起
祖安文状元 2020-02-21 17:54:38 644 0
1 条回答
写回答
取消 提交回答
  • 所有框架都实现WSGI协议https://www.python.org/dev/peps/pep-0333/。这是常见的基本机制,他们在此之上构建了自己的便利功能。您总是可以回到原始的WSGI。

    上载完成后,有一个通用的框架来存储和处理文件:仓库http://depot.readthedocs.io/en/latest/

    例如,您可以获取原始WSGI数据并在每个框架http://webob.org/中从中生成WebOb Request对象。

    另请参阅Authomatic以获得灵感http://peterhudec.github.io/authomatic/

    2020-02-21 17:54:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载