2013-02-15 207 views
6

我近一年來一直在同樣的問題上磕磕絆絆。我總是找到一種解決方法,但我厭倦了找到解決辦法。從網上運行一個Python腳本

我需要的是在網頁上創建一個按鈕(最好是HTML,而不是PHP或ASP),它在服務器上運行python腳本。我還希望能夠讓這個按鈕從表單發送信息到腳本。

我需要在本地主機上以及通過託管在Amazon Cloud上的Web服務執行此操作。我將無法在Amazon Cloud服務上安裝任何額外的東西,例如PHP或CGI。

我真的很喜歡一個簡單的解決方案,我是一個Python的專家,我可以編寫口哨的網頁,但我無法找到這個問題的簡單解決方案。

我的理想的解決辦法是這樣的郵件標記:

<a href="mailto:[email protected]?Subject=Hello%20again">Send Mail</a> 

除外:

<a href="myscript.py?Subject=1234">Run Script</a> 

現在我很懷疑這樣的一個解決方案,但還有我可以夢想的權利。

我試圖運行腳本:

  1. 從用戶
  2. 返回一個唯一的ID發送ID來創建基於ID地圖的地理信息系統(該ID選擇的區域地圖)
  3. 然後將地圖導出到PNG,寫入HTML文檔,然後在新選項卡中顯示給用戶。

編輯---------------------------

感謝@Ketouem答案我能找到一個偉大的解決我的問題。我會在這裏發佈一些代碼,以便其他人可以受益。確保你下載了用於python的Bottle Module,它非常棒。

# 01 - Import System Modules 
from bottle import get, post, request, Bottle, run, template 

# 02 - Script Variables 
app = Bottle() 

# 03 - Build Temporary Webpage 
@app.route('/SLR') 
def login_form(): 
    return '''<form method="POST" action="/SLR"> 
       Parcel Fabric ID: <input name="UID" type="text" /><br /> 
       Save Location: <input name="SaveLocation" type="text" value="D:/Python27/BottleTest/SLR_TestOutputs"/><br /> 
       Air Photo On: <input name="AirPhoto" type="checkbox"/><br />     
       Open on Completion: <input name="Open" type="checkbox"/><br /> 
       Scale: <input name="Scale" type="text" value="10000"/><br /> 
       <input type="submit" /> 
       </form>''' 

# 04 - Return to GIS App 
@app.route('/SLR', method='POST') 
def PHPH_SLR_Script(): 
    # I won't bother adding the GIS Section of the code, but at this point it send the variables to a program that makes a map. This map then saves as an XML and opens up in a new tab. 

# 04 - Create and Run Page 
run(app, host='localhost', port=8080) 
+1

? – 2013-02-15 16:25:18

+0

我有問題的另一個問題,如果任何人都可以幫助它位於[這裏](http://stackoverflow.com/questions/15010556/python-bottle-issues-when-accessed-externally) – 2013-02-21 19:35:45

回答

5

你可以使用瓶:您可以運行使用web.py,瓶或角守護http://bottlepy.org/docs/dev/index.html這是一種輕型Web框架

+0

嗯,這個是一個非常有趣的解決方案,我將不得不嘗試它,然後才真正知道它是否適合我的情況。 – 2013-02-15 17:03:40

+0

神奇的解決方案,我會將我的代碼添加到我的答案中,但您真的幫助了這個模塊建議。 – 2013-02-19 15:10:34

+1

很高興幫助^^ – Ketouem 2013-02-19 16:53:28