使用python创建一个“单一服务站点”

时间:2011-08-08 09:52:12

标签: python web-services web-frameworks

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

  • 对于那些不熟悉Python和Web开发的人来说有多难?
  • 它有多少工作?
  • 我需要一个框架(Django,cherryPy,web2py)吗?
  • 有没有很好的教程?
  • 如何避免服务器遭到入侵?
  • 我接下来的步骤是什么?

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

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

[更新]

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

  

将其放入操作系统的可执行目录(通常称为CGI   路径)。提供一个简单的HTML表单&在表单提交时点击此处   执行&的脚本返回您想要显示的图像。

有任何异议或评论?你知道任何教程吗?

[udpate2]

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

4 个答案:

答案 0 :(得分:1)

  1. 这不是太难。实际上,这听起来像是一个很好的第一个项目。
  2. 这太主观了。一小时到几天。
  3. 不,你不需要一个,但如果我是你,我会用一个。它们抽象出你真正不关心的一些东西,你将学习一种可以在将来再次使用的工具。
  4. 丰盛。如果您想要了解Python如何为Web工作,请阅读HOWTO from Python.org。如果您只是想学习如何完成这个项目,请选择一个框架并完成他们的教程。
  5. 这个问题是如此广泛和复杂,我不会试图回答它。在此网站或Google上搜索此类问题。
  6. 你的下一步应该是选择一个框架;我已成功使用Django。只需下载它,按照安装说明操作,并按照他们的教程进行操作;它应该告诉你做你想做的事情你需要知道的一切。如果您在学习了基础知识后仍有疑问,请回来再问一次!
  7. 编辑:对其他问题的回答肯定对你有用。在那里,他们只收到GET请求并使用Python文件中的数据进行响应。您需要接收GET请求,使用HTML页面进行响应(足够简单),然后响应包含上传文件(稍微复杂一点)的POST请求,并在上传的文件上运行您的python例程,然后使用创建的图像进行响应(或其链接)。

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

答案 1 :(得分:0)

  • 对于那些不熟悉Python和Web开发的人来说有多难?

    取决于您的知识水平。

  • 它的工作量是多少?

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

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

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

  • 有没有很好的教程?

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

  • 如何避免服务器遭到入侵?

    同样,取决于您选择解决问题的方法,尽管存在共性。

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

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

答案 2 :(得分:0)

如果它就像你描述它一样简单。那你甚至可能不需要Django。您只需使用CGI脚本即可。所有这些设计决定取决于是否

  1. 您需要(或预见)SQL存储?
  2. 还是内容管理系统?
  3. 您需要多用户支持吗?
  4. 你需要严密的安全吗?
  5. 您是否需要为不同用户提供不同的权限?
  6. 您是否需要Admin来管理您的网站?
  7. 如果上述问题的答案至少是正确的60%,那么您可以考虑使用Django。否则,只需编写一个python脚本。将它放在操作系统的可执行目录中(通常称为CGI路径)。提供一个简单的HTML表单&在表单提交时点击此脚本执行&返回您要显示的图像。所以,这一切都取决于你需要的功能......

答案 3 :(得分:0)

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

他们在Uploading Files上有一个记录良好的模式/教程。即使对于具有很少python和web经验的人来说,该教程也是可以理解的。

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