2017-10-16 128 views
2

我正在Python3中編寫一個非常簡單的應用程序,該應用程序僅通過Python http.server.BaseHTTPRequestHandler,HTTPServer模塊接收來自POST輸入的某些服務器端命令。Python HTTPServer serve_forever控制檯輸入

目前,我的代碼如下:

mysql_tools.f_print("Starting HTTP server on %s:%s.." % SERVER_ADDRESS) 
httpd = HTTPServer(SERVER_ADDRESS, S) 
mysql_tools.f_print("Server started. Now serving port %s." % SERVER_ADDRESS[1]) 
httpd.serve_forever() 

其中S爲BaseHTTPRequestHandler類。

現在,我想能夠也有控制檯輸入。該應用程序運行在CMD窗口中,只顯示「服務器啓動。現在服務端口1010」,但是我希望能夠在CMD窗口中鍵入,例如「停止」並相應地進行處理,或者「重新啓動」或「forcerequest 「等等等等。但正如你可能知道的,由於」serve_forever()「它沒有任何輸入,它忽略了任何未來的代碼行,因爲它似乎無限循環。

任何建議或替代方式服務的港口將appriciateted。

回答

1

AFAIK,有沒有辦法,至少不是從那個窗口,(這是不是由於serve_forever),任何服務器的行爲與這種方式,它只是偵聽SIGTERM(CTRL + C關機( ))。

+0

謝謝。我將不得不使用不同的消息來發送調試命令,可能只是通過POST進行調試。 – Polymer