【问题标题】:Create a 'single-serving site' with python使用 python 创建一个“单一服务站点”
【发布时间】:2011-08-13 02:03:14
【问题描述】:

我想将 Python 脚本作为网络服务提供。该脚本是我的第一个“合适的”Python 程序,它将一个 txt 文件作为参数并将图像写入工作目录。所以:

  • 对于 Python 和 Web 开发新手来说有多难?
  • 工作量是多少?
  • 我需要一个框架(Django、cherryPy、web2py)吗?
  • 有好的教程吗?
  • 如何避免服务器被入侵?
  • 我接下来的步骤是什么?

    ==> 最简单的方法是什么?

最后就足够了,如果它是一个白页,带有一些文本和一个按钮,单击该按钮会打开一个文件对话框。处理完 txt 后,服务器应该只返回写入硬盘驱动器上的图像。我已经可以访问通过朋友安装了 Ubuntu 的服务器。

[更新]

感谢您的所有回答。读完之后,我想再次强调,我希望尽可能地减少它。 Srikar 的建议听起来是最简单的:

把它放在你操作系统的可执行目录下(俗称CGI 小路)。提供一个简单的 HTML 表单并在表单提交时点击这个 执行并返回您要显示的图像的脚本。

有任何异议或意见吗?你知道这方面的教程吗?

[udpate2]

我找到了这个 SO 答案:File Sharing Site in Python 这是一个明智的方法吗?

【问题讨论】:

  • 那里有很多很多问题,毫无疑问有很多答案!
  • 您好 Raz,感谢您的反馈。我看到同样的问题,但我的印象是,所有问题都有相同的核心,如果不触及另一个问题,你就无法回答一个问题。我试图将它们总结为:“最简单的方法是什么?”
  • 如果您只需要 CGI,这一切都非常快速和简单。困难的部分是创建一个图像,但由于你没有问这个问题,我想你已经知道如何实现它了。谷歌 CGI python 教程,你应该在一小时或更短的时间内只阅读一个就可以了。
  • 使用 CGI 作为服务器网关当然很容易,但我仍然建议不要遵循 CGI python 教程; python 的cgi 模块令人不快。幸运的是,您可以轻松地将更现代的 wsgi 包装为 cgi handler 并获得两全其美(易于部署,有用的 Python Web 框架知识)

标签: python web-services web-frameworks


【解决方案1】:
  1. 这并不难。实际上,这听起来是一个不错的第一个项目。
  2. 回答太主观了。一小时到几天。
  3. 不,你不需要一个,但如果我是你,我会用一个。他们将一些你真正不关心的东西抽象出来,你将学习一个可以在未来再次使用的工具。
  4. 很多。如果您想真正了解 Python 如何在 Web 上工作,请阅读 HOWTO from Python.org。如果您只想学习如何完成这个项目,请选择一个框架并完成他们的教程。
  5. 这个问题非常广泛和复杂,我不打算回答它。在此网站或 Google 中搜索此类问题。
  6. 下一步应该是选择一个框架;我已经成功使用了Django。只需下载它,按照安装说明进行操作,然后按照自己的方式完成教程即可;它应该告诉你做你想做的事所需要知道的一切。如果您在学习了基础知识后仍有疑问,请回来再次提问!

编辑:其他问题的答案肯定对您有用。在那里,他们只接收一个 GET 请求并使用 Python 文件中的数据进行响应。你需要接收一个 GET 请求,用一个 HTML 页面响应(很简单),然后响应一个包含上传文件的 POST 请求(稍微复杂一点),然后在上传的文件上运行你的 python 例程,然后用创建的图像响应(或指向它的链接)。

查看this page,其中包含一个用于上传文件的简单 Python 脚本。您应该能够轻松地对其进行修改以执行您想要的操作。

【讨论】:

    【解决方案2】:
    • 对于刚接触 Python 和 Web 开发的人来说有多难?

      取决于你的知识水平。

    • 工作量是多少?

      取决于您选择哪种方法来解决问题。

    • 我需要一个框架(Django、cherryPy、web2py)吗?

      不一定 - 您可以使用 CGI (http://docs.python.org/library/cgi.html) 开始

    • 有好的教程吗?

      是的,有很多。 Python 文档是一个很好的起点。

    • 如何避免服务器被入侵?

      同样,取决于您选择解决问题的方法,尽管有共同点。

    • 我接下来的步骤是什么?

      我敢再说一遍,选择一种方法,阅读文档,玩一玩!

    【讨论】:

      【解决方案3】:

      如果它和你描述的一样简单。那么你甚至可能不需要 Django。您可以简单地使用CGI 脚本。所有这些设计决策,取决于是否

      1. 您需要(或预见到)SQL 存储?
      2. 还是内容管理系统?
      3. 您需要多用户支持吗?
      4. 您需要严格的安全措施吗?
      5. 您是否需要为不同的用户提供不同的权限?
      6. 您需要Admin 来管理您的网站吗?

      如果上述问题的答案至少有 60% 的正确率,那么您可能会考虑使用 Django。否则,只需编写一个 python 脚本。把它放在你的操作系统的可执行目录中(通常称为 CGI 路径)。提供一个简单的 HTML 表单并在表单提交时点击此脚本,该脚本执行并返回您要显示的图像。所以,这一切都取决于您需要的功能......

      【讨论】:

      【解决方案4】:

      最后,我用Flask 创建了我需要的东西。

      他们在Uploading Files 上有一个有据可查的模式/教程。即使对于 Python 和 Web 经验很少的人来说,该教程也是可以理解的。

      为了获得第一个工作版本,我花了 2 小时,结果代码只有 50 行。这包括启动网络服务器、拥有一个带有文件上传的 html 文件/表单并将文件返回给用户。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 2016-12-28
        • 2015-10-21
        • 2017-01-21
        • 2020-02-07
        • 1970-01-01
        • 2016-02-05
        相关资源
        最近更新 更多