2012-10-09 46 views
-2

我對HTML沒有真正的知識,但我必須使用它來爲某些數據創建Webview。 我想要一個按鈕,鏈接到另一個python腳本來比較數據集。 您可以通過選中複選框來選擇要比較的數據集。 然後該按鈕應該將您帶到正確的腳本。 比較函數,數據集列表等都可以工作,但我似乎無法獲得複選框的值。 這將生成複選框的列表如何通過Python檢索HTML複選框的值

query_3 = App.QueryFactory.new("XMLQuery", xml_2 %(p1, p2, p3)) 
    for smlz in query_3.getAll(): 
    resultz += ''' 
<input type="checkbox" name="sml_id" value="%s"> 
<a href="http://xxx:xxx/xxxxx?sml_1=%s&gewinde=&kopf=&antrieb=&singlesearch=Suche"> 
%s | ID: %s |</a><br><br>''' % (smlz.id, smlz.id, smlz.status, smlz.id) 
return resultz 

這是按鈕的代碼:

comparebutton = """<td><input type="button" onclick="window.location.href = 'http://xxxx:xxxx/xxxx?sml_1=%s&gewinde=&kopf=&antrieb=&singlesearch=Suche';" value="Vergleichen"></td>\n""" % cb_id 

keyw_c = str(kwds.get("sml_id")) 
keyw_c_l = keyw_c.split() 
key_c_len = len(keyw_c_l) 
cb_id = '' 
p = 0 
while p < key_c_len: 
    temp_1 = str(keyw_c_l[p]) 
    temp_2 = temp_1.strip(",[]'") 
    p += 1 
    cb_id += "%s_" % temp_2 

(注:_需要,我要鏈接到腳本能夠顯示更多比數據集劃分數據ID的下劃線,因此「比較」數據集)

我試着get,getAll等,以獲得我檢查的複選框的值,但我總是得到'無' 我做錯了什麼或者是否有可能通過製作一個執行我的python代碼的某個函數的按鈕使這更容易,因爲我有「比較」腳本的代碼,我只是缺乏HTML知識來做類似那。 kwds的

輸出(我有一個輸入和singlesearch 4個領域是搜索按鈕的名稱)

{'sml_1': ['test'], 'antrieb': ['test'], 'singlesearch': ['Suche'], 'kopf': ['test'], 'gewinde': ['test ']} 
+1

什麼 - _exactly_ - 應該是在你的第二個代碼片段?什麼是'kwds'?你在哪裏得到'sml_id',因爲它似乎不是你的查詢字符串的一部分? –

+0

snl_id是複選框的名稱,用kwds.get(「name」)我在webviewer中獲得了輸入字段等的值,我不知道它爲什麼是kwds.get,我得到了這段代碼的一部分交給我,它是這樣使用,並一直工作 –

+1

你使用什麼框架? –

回答

0

爲了使HTML網頁瀏覽器界面中,你需要運輸的網絡瀏覽器與交流您應用。最常用的傳輸是http。要運行一個可以運行python代碼的http,有很多options。如果我不得不推薦一些東西,那將是pyramid。然後

您的Web服務器應處理不同的請求:

  1. 返回初始HTML表單的URL。表單可以包含您需要的複選框。此表單的操作應該是請求號2的url。表單的方法可以是POST或GET。使用GET時,表單數據對用戶可見。對於POST而言,它是隱藏的。對於您的用例,GET可能更好。

  2. 處理的URL從表單中獲取。它將能夠通過查看請求來查看錶單上的輸入值(例如複選框)。此時,您可以調用vpython模塊來生成所需的內容,並將其傳遞給http響應中的瀏覽器。

相關問題