在Python中解析HTML输入数组(GAE)

1 投票
2 回答
2565 浏览
提问于 2025-04-16 22:34

我刚开始学习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

撰写回答