2009-05-18 64 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「(不含引號)。
相關問題