在Python中解析HTML输入数组(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])
那我该怎么做才对呢?
2 个回答
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))
根据输出结果,你应该能更清楚地知道如何得到想要的结果,或者如果你对某些行为仍然不理解,如何在提问时添加更多细节。
5
把你的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数据来说,并没有数组的概念,你的表单会被转换成一个用'&'分隔的key=value字符串,比如说
p_item=1&p_item=3&p_item=15
等等,具体是否把某个参数当成数组,得看你使用的网络框架怎么解释。
编辑:哎呀,刚看到评论你已经搞明白了,没事啦 :P