這個學期我正在做一個python類,我想用網頁的形式向我的程序添加圖形用戶界面。部分我不能爲學習Tkinter而困擾,部分我只是在挑戰自己,部分我只是喜歡用HTML/JS編寫接口。執行python腳本的python服務器
我知道關於使用SimpleHTTPServer創建HTTP服務器的基礎知識,但是我需要的是一種讓我的網頁能夠將ajax命令發送到服務器上的python腳本的方式,然後它將執行服務器端,然後接收腳本輸出。有點像Sage如何做。
如何爲SimpleHTTPServer創建一個擴展,然後可以使用它來提供python腳本的輸出?我需要一個非常通用的解決方案,以便在編寫任何python腳本時,我可以輕鬆地將其包裝在某種界面中,將其放入服務器的文件夾中,而無需執行其他任何操作,只需使用AJAX調用它即可服務器將處理剩下的事情。
我目前的想法是有一個ServerSideScript
類,我的腳本可以擴展,使用一個稱爲output
的函數。我擁有的每個腳本都應該包含一個名爲Script的ServerSideScript的子類。當服務器被要求以服務,例如,foo.py,它注意到了延伸和不一樣的東西:
if self.path[-3:]: == ".py":
return getScriptOutput(self.path)
...
def getScriptOutput(self, path):
from path import Script # obviously not going to work, since path is a string
return Script().output()
這不能爲工作原因在評論中指出,我知道諸如import_module函數之類的東西,但是導入看起來像是一種難看的方式,以此開始。
建議是什麼?
你見過[CGIHTTPServer](http://docs.python.org/2/library/cgihttpserver.html)嗎? –
@MartijnPieters這是默認的,對吧?我無法在學校電腦上安裝額外的模塊。 –
爲什麼不使用合適的網絡服務器和像Flask這樣的微型框架? –