2012-09-09 142 views
0

我有一個項目,我正在將它運行良好。Python http服務器交互

但我有點迷失在哪裏開始Python明智。這些項目的基礎是一個Arduino通過無線鏈接(已經安裝)控制的照明系統,它通過xBee網絡串行接收來自python程序的命令(這部分是編碼和工作的)。我希望項目可以通過互聯網進行控制。

我正在考慮運行它,以便python程序運行一個很容易設置的http服務器。

這是我遇到麻煩的地方,因爲我以前沒有玩過python。我如何讓程序響應請求並根據頁面上點擊的內容運行代碼?

任何人都可以點我在正確的方向,請

+0

採取一些Python Web框架的問題是什麼? –

回答

4

您可以編寫使用類似龍捲風的框架偵聽任意端口上消息的服務器應用程序。

但是,它聽起來像你想建立一個Web界面。爲此,您應該選擇一個Web框架。我最喜歡的微框架是Flask。他們剛剛鏈接的快速入門顯示了簡單網站的運行是多麼容易。

然後,您將爲用戶界面中的每個操作編寫一個函數。當用戶點擊訪問相關URL的鏈接(或按鈕)時,這些功能中的每一個都會被激活。

@app.route('/') 
def index(): 
    return render_template('index.html') 

@app.route('/dim_lights/<room>') 
def dim_lights(**kwargs): 
    dim_lights_for_room(kwargs['room']) 

'index.html'模板將包含類似<a href="/dim_lights/lounge">Dim the Lights in the Lounge</a>.

這是否有道理鏈接?

+0

燒瓶+1。這是一個了不起的框架。 – Blender

+0

感謝您提供的信息,對於延誤幾天的延誤感到抱歉,這個接縫是我需要的路線。我會做一些研究 –

0

如果您嘗試創建一個與您的項目鏈接的基於Web的應用程序,您可以嘗試使用Flask作爲框架,並可能使用Gunicorn作爲http服務器。閱讀Flask文檔以更好地理解Flask。在那個網站上有一個關於python web deveveloper newbie的教程。

然後,您需要爲您的硬件編寫一些腳本,並且可以將它與您的Web應用程序集成。

1

如果你在一個python應用程序中使用串口和web應用程序,那麼我會使用twisted。它是事件循環處理串行端口以及Web請求等....它也是一個框架。大多數其他「框架」不支持串行端口(作爲事件循環的一部分 - 即接收數據時的回調)。 http://twistedmatrix.com/trac/