2009-05-18 68 views
15

我正在寻找使用本地网络服务器为用户运行一系列python脚本。由于各种不可避免的原因,python脚本必须在本地运行,而不是在服务器上运行。因此,我将在前端使用HTML +浏览器作为用户界面,这对我来说很合适。如何为我的Python脚本创建本地网络服务器?

因此,我一直在寻找一种轻量级的Web服务器,它可以执行Python脚本,坐在机器的后台,理想的Windows服务。安全性和可扩展性不是高优先级,因为它全部在小型网络上运行。

我应该运行一个本地python网络服务器作为Windows服务(在这种情况下,如何)?或者,将Apache安装到用户的机器上并像CGI一样运行也很容易?由于这都是本地的,所以性能也不是问题。

或者我错过了明显的东西?

回答

15

不要浪费大量的时间来创建Windows服务。

不要在Windows Apache上浪费很多时间。

只需制作一个响应HTTP请求的Python服务即可。

https://docs.python.org/2/library/basehttpserver.html
https://docs.python.org/3/library/http.server.html 3版
python提供,你可以与你的服务器端方法扩展的HTTP服务器。

看看http://docs.python.org/library/wsgiref.html
Python提供了一个WSGI参考实现,使您的服务器变得简单且符合标准。

而且http://fragments.turtlemeat.com/pythonwebserver.php


“我试图避免从命令提示符让用户运行蟒蛇的东西。”

我不明白点击网页与单击桌面图标有什么不同。

启动基于Python的Web服务器比较容易,一旦你有了Web服务器。首先,建立服务器。稍后,您可以确保服务器启动。让我们看看一些方法。

  1. 您的用户不能使用随机浏览器打开您的本地页面。他们需要一个书签来启动“本地主机:8000/myspecialserverinsteadofthedestop /”该书签可以是一个.BAT文件,(1)运行服务器,(2)运行firefox的正确的初始URL。

  2. 您可以将服务器置于用户的开始 - 此菜单中。

  3. 你可以让你的Python程序成为一个windows“服务”。

+0

因此,我需要让用户在每次想使用框架时启动服务器?我试图*避免*使用户从命令提示符运行python的东西。乌龟链接需要手动运行,除非它是一项服务。 – 2009-05-18 10:34:41

+0

针对wsgiref的+1,在您的机器上本地测试您的Python Web脚本的绝佳方式。 – bortzmeyer 2009-05-18 11:22:11

0

将本机python web服务器作为Windows服务运行应该是不容易的。查阅python编写windows服务(win32api,ActiveState python)的文档,以及BaseHttpServer和SimpleHttpServer的子类文档。

BTW:我对计算器一个类似的问题:How to stop BaseHTTPServer.serve_forever() in a BaseHTTPRequestHandler subclass?

基本上,你继承BaseHTTPServer(你必须反正...),然后...只是阅读接受的答案 - 它让我在正确的轨道上!

1

最好的方法是使用命令提示符制作自己的本地服务器。

  1. 创建一个新的文件夹说项目
  2. 使内部项目&其命名为新的文件夹为 “的cgi-bin”(不带引号)
  3. 粘贴在cgi-bin文件夹内的.py文件
  4. 打开cmd并切换到要从中运行服务器的目录并键入“python -m CGIHTTPServer”(不含引号)
  5. 最小化cmd窗口&打开浏览器并键入“localhost:8000/cgi-bin/yourpythonfilename.py“(不含引号)。
相关问题