如何为我的python脚本创建本地Web服务器?

时间:2009-05-18 10:13:26

标签: python webserver simplehttpserver

我希望使用本地网络服务器为用户运行一系列python脚本。出于各种不可避免的原因,python脚本必须在本地运行,而不是在服务器上运行。因此,我将使用HTML +浏览器作为用户界面,我很满意,用于前端。

因此,我一直在寻找能够执行python脚本的轻量级Web服务器,它位于机器的后台,理想情况下是Windows服务。安全性和可扩展性不是高优先级,因为它们都在内部在小型网络上运行。

我应该将本机python webserver作为Windows服务运行(在这种情况下,如何)?或者将Apache安装到用户的计算机上并以CGI身份运行同样容易?由于这都是本地的,因此性能也不是问题。

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

3 个答案:

答案 0 :(得分:16)

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

不要在Windows Apache上浪费大量时间。

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

看看https://docs.python.org/2/library/basehttpserver.html
版本3 https://docs.python.org/3/library/http.server.html Python提供了一个HTTP服务器,您可以使用服务器端方法扩展它。

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

另外http://fragments.turtlemeat.com/pythonwebserver.php


“我正在尝试避免让用户从命令提示符运行python内容。”

我没有看到点击网页与点击桌面图标有什么不同。

一旦拥有了Web服务器,启动基于Python的Web服务器就相对容易了。首先,构建服务器。稍后,您可以确保服务器启动。我们来看看。

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

  2. 您可以将服务器放在用户的开始菜单中。

  3. 您可以将您的Python程序设为Windows“服务”。

答案 1 :(得分:1)

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

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

答案 2 :(得分:-1)

将本机python Web服务器作为Windows服务运行应该是不费脑子的。查看用于在python中编写Windows服务(win32api,ActiveState python)的文档以及子类化BaseHttpServer和SimpleHttpServer的文档。

BTW:我在stackoverflow上有类似的问题:How to stop BaseHTTPServer.serve_forever() in a BaseHTTPRequestHandler subclass?

基本上,你是BaseHTTPServer的子类(无论如何......)然后......但只是阅读了接受的答案 - 它让我走上了正确的轨道!