2017-06-04 112 views
1

我有,我想作爲一個網站簡單的Python腳本:獲取Python腳本在HTTP簡單的服務器運行

import SimpleHTTPServer 
import SocketServer 

PORT = 8000 

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler 

httpd = SocketServer.TCPServer(("", PORT), Handler) 

print "serving at port", PORT 
httpd.serve_forever() 

我該文件夾中,然後運行

$ python3 -m http.server 

然後我訪問 http://hassbian.local:8000/song.py

終端說這個,我得到的文件作爲txt文件,腳本將不會執行。

Serving HTTP on 0.0.0.0 port 8000 ... 
192.168.1.115 - - [04/Jun/2017 14:19:59] "GET/HTTP/1.1" 200 - 
192.168.1.115 - - [04/Jun/2017 14:20:04] "GET /song.py HTTP/1.1" 200 - 

運行在樹莓派

+2

你不能執行這樣的腳本。 'python3 -m http.server'只會提供您運行它的目錄中的文件。 – thefourtheye

+0

我應該用什麼來代替? – Himmators

+0

它並不一定是python,任何簡單的腳本語言都可以。 – Himmators

回答

1

SimpleHTTPServer沒有做CGI。如果你想CGI,你將不得不使用CGIHTTPServer

這個模塊可以在Unix和Windows系統上運行CGI腳本。

我不知道如果這是你真正想要的,但你已經證明的方式調用一個python腳本是CGI。 CGI是一種非常古老的做事方式。使用python運行簡單的web應用程序現在幾乎完全是webapp2或flask的域。雖然涉及數據庫的更復雜的應用程序由django控制。

+0

很好的信息,CGI似乎很好,因爲它已經在我的rasberry pi上運行了,我正在創建一個小型的web服務,將一個文件夾中的幾個文件作爲json對象提供,CGI就足夠了嗎? – Himmators

+0

那麼,如果它只是json,SimpleHTTPServer就沒問題。你的問題表明你試圖運行一個python文件。 – e4c5

+0

嗯,它是一個動態創建的json文件,基於文件夾的內容。 – Himmators