2011-07-30 34 views
0

我已經兩天了Python和GAE,在此先感謝您的幫助。Python輸入數組解析(GAE)

我在HTML的輸入數組是這樣的:

<input type="text" name="p_item[]"> 
<input type="text" name="p_item[]"> 
<input type="text" name="p_item[]"> 

我想分析在Python的輸入,而且我想這一點,這是行不通的:

items = self.request.get('p_item') 
for n in range(1,len(items)): 
    self.response.out.write('Item '+n+': '+items[n]) 

什麼是正確的方法來做到這一點?

+0

我從來沒有用過GAE但我猜你想在你p_item「陣」名稱值的值。例如,'p_item [field1]'或'p_item [field2]'?現在,我有一種感覺,你可能會遇到'len(items)== 0'的問題。 –

+0

好吧,我得到這個工作,但通過刪除HTML中的括號[]。這是一個可接受的標準,只需在一個HTML文檔中多次出現變量名稱,而不使用數組? – Steven

+0

「不工作」是什麼意思?你會得到意想不到的結果嗎?你有錯誤嗎?哪一個?在哪一行?你到目前爲止還嘗試過什麼? – dtb

回答

4

你的HTML改成這樣

<input type="text" name="p_item"> 
<input type="text" name="p_item"> 
<input type="text" name="p_item"> 

,並使用self.request.get_all()方法http://code.google.com/appengine/docs/python/tools/webapp/requestclass.html#Request_get_all

附:作爲參考,沒有用於GET/POST數據的數組的概念,表單被變換爲由'&'分隔的鍵=值字符串,例如

p_item=1&p_item=3&p_item=15 

等等,它是由web框架來解釋參數是否是一個數組。

編輯:哎呀,剛看完,你想通了這一點已,很好哦評論:P

0

如果出現這種問題,我會推薦做一些調試。把事情簡單化並寫出你的變量值,並確保你在每一步都能得到你所期望的。這樣做如下:

<form method="get"> 
    <input type="text" name="single_key" /> 
    <input type="text" name="array_key[some_key]" /> 
    <input type="submit" /> 
</form> 

,看到後臺運行下面的Python時會發生什麼:

single_value = self.request.get('single_key') 
self.response.out.write(str(single_value)) 

array_value = self.request.get('array_key') 
self.response.out.write(str(array_value)) 

基於輸出,你應該有什麼就得到理想的效果更好的主意或者如果您仍然不明白特定行爲,如何爲您的問題添加更多細節。