从Web浏览器上传Python文件的最简单方法是什么?

时间:2014-02-24 22:17:33

标签: python

我搜索过了。我能找到的一切都是一个巨大的文件。它不会那么难。 C#有一个SaveAs,PHP使用$ _FILES数组。 Python到处都是。 Cgi,httprequest,urllib,urllib2,httplib2,如何在Django,Pylons,Flask等中做到这一点.Java也很复杂。

我想知道的是,从网页上传文件的最基本方式是什么。

Python 2.7或Python 3在我的搜索中没有任何区别。

感谢任何帮助。

编辑:为了澄清,我的意思是任何有“上传”按钮的网页。可能在这里,Craiglist,什么。我真正想做的就是上传一个图像文件并将其保存在服务器上。

编辑:问题的部分原因是有很多图书馆,每个人都说使用x。

编辑:服务器可以是Apache或IIS。

1 个答案:

答案 0 :(得分:3)

“从Web浏览器上传Python文件的最简单方法是什么?”

我认为没有一种简单的方法,因为这个问题没有多大意义。至少有三种方法可以解释这个问题:

  1. 如果您想将使用Python作为网络浏览器的文件上传到远程服务器上,最简单的方法之一就是使用requests库。

  2. 如果要将文件从Python控制的Web浏览器上传到远程服务器,则可以使用selenium库来驱动Firefox浏览器。

    < / LI>
  3. 如果要将带有Web浏览器的文件上传到运行Python的远程服务器上,则没有“简单”的方法。 Python没有像PHP那样“与apache运行”集成。虽然有一些开源项目可以让Python在Apache中运行,但大多数人都选择以自己的守护程序或某种WSGI服务器或代理来运行他们的Python代码。

  4. 处理#3的简单方法 -

    • 进行网络搜索的最简单方法是web.py。它非常简单而有限。
    • 如果您愿意做更多工作,可以使用flaskbottle
    • 等微框架
    • 还有另一层极简主义框架,其中包含pyramidtornadotwistedcherrypy等。他们往往非常强大,但不要为你做任何决定。有人在前几天发布了此链接,比较了几个 - http://codecondo.com/14-minimal-web-frameworks-for-python/
    • 最后,您拥有完整的框架,例如djangoturbogearsweb2py,这些框架会为您做出很多决定。

    一般来说,每个框架都会以不同的方式处理来自请求的GET / POST数据。虽然cgi包经常被包装,但是对于应该使用哪个库来处理文件上传没有真正的共识。很多框架似乎都集成了webob来处理WSGI堆栈中的东西。

    的/更新/

    使python启动并运行的一些简单方法:

    • 大多数框架都会为测试或低负载条件提供轻量级守护进程。你可以按命令行运行它,它将绑定到一个高端口(如8080)
    • 如果您不想直接点击它,可以向更高端口发出Apache / IIS代理请求
    • 您可以使用gunicornuwsgieventlet或大约12个其他库来运行uwsgi环境。

    个人而言,我这样做

      端口80上的
    • nginx
    • 开发 - 代理通过脚本的test-daemon,在更高端口上运行(对于金字塔/ Pylons是贴纸,对于web.py它只是命令行)
    • 生产 - 通过uwsgi运行