【问题标题】:Google App engine - submitting form field "field[key]" [duplicate]Google App引擎 - 提交表单字段“field [key]”[重复]
【发布时间】:2011-09-06 22:10:46
【问题描述】:

所以我的问题是,如何在提交此特定表单时获取表单值作为列表:

<form action="/foobar" method="post">

<input type="text" value="text 1" name="text[key_1]" />
<input type="text" value="text 2" name="text[key_2]" />
<input type="text" value="text 3" name="text[key_3]" />
<input type="text" value="text 4" name="text[key_4]" />

</form> 

目前,您无法使用 self.request.get('text') 或 self.request.get_all('text') 将所有这些值作为 dict / touple / list 获取,因为这仅在您准确指定 self 时才有效。 request.get('text[key_1]')。

你可以做这种类型的表格:

<form action="/foobar" method="post">

<input type="text" value="text 1" name="text" />
<input type="text" value="text 2" name="text" />
<input type="text" value="text 3" name="text" />
<input type="text" value="text 4" name="text" />

</form> 

texts = self.request.get_all('text') // 你会得到 texts = ['text 1', 'text 2', 'text 3', 'text 4']

但就像我说的,我需要键/对表单值

【问题讨论】:

  • x[y] 在表单中是一个相当奇怪的 PHP 约定。你最好选择更适合自己解析的东西。或者更好的是,只使用不同的名称,这就是命名字段的意义所在。

标签: python google-app-engine


【解决方案1】:

我猜你正在使用 webapp 框架。获取键/值对。你可以做这样的事情

如果你的方法是 GET,

self.request.str_GET.items()

其他

self.request.str_POST.items()

更多参考here

【讨论】:

  • self.request.str_POST.items() 将返回密钥/帖子对,但不返回字段[key]... [('question', ''), ('options' , ''), ('options', ''), ('tags', ''), ('token', 'ejgTidm4iGXNgl0NpUQmWGeSU'), ('other[1]', '1'), ('other[ 2]', '2'), ('other[3]', '3'), ('other[4]', '4')] 而帮助我的帖子返回 {'1': '1' , '3': '3', '2': '2', '4': '4'} 我想要的
猜你喜欢
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
相关资源
最近更新 更多