【问题标题】:How can I request an unknown number of fields from my python code in App Engine?如何从 App Engine 中的 python 代码请求未知数量的字段?
【发布时间】:2015-11-09 03:28:47
【问题描述】:

我有一个 HTML 页面,用户可以在其中向表格中添加任意数量的行,我想在我的代码中请求这些元素以在某些计算中使用它们。现在,如果我知道该字段的“名称”属性,我可以像这样得到它:

class MyHandler(handler):
    def get(self):
        #Render the page.
    def post(self):
        my_variable = self.request.get('name')
        #So my_variable is equal to what the user entered.

问题是我事先不知道会有多少字段,因为用户可能会在表中添加“n”行。如果我可以将每一列作为一个列表来获取,那将是最好的。 HTML 代码可能如下所示:

<table>
  <tr>
    <th>A</th>
    <th>B</th>
    <th>C</th>
  </tr>
  <tr>
    <td>a.1</td>
    <td>b.1</td>
    <td>c.1</td>
  </tr>
  <!-- More rows -->
</table>

编辑: 我在 jsbin 中做了一个小例子来说明它是如何工作的: http://jsbin.com/cejijag/edit?html,js,output

【问题讨论】:

  • 这不是很清楚。用户如何在这里添加字段?也许你应该显示输入表单。
  • 它只是一个带有按钮的表格,可以使用 Javascript 向其中添加一行。

标签: python html google-app-engine


【解决方案1】:

如果您只是向同一个name 字段添加多个值,则可以通过self.request.getall('name') 以列表形式获取该字段的所有数据。

【讨论】:

  • 我想,如果我将为表的每一行(而不是列)命名,那是不是意味着我需要多个 .get_all() 语句?
  • 这就是为什么我问你是如何添加字段的。为什么要为每一行命名?
  • 我不知道,我还在学习这个。如果我不标记每一行,我怎样才能在不忘记什么是什么的情况下获得这些值?如果有更好的方法,你能告诉我怎么做吗?
【解决方案2】:

使用self.request.params,像这样:

for param_name, param_value in self.request.params.items():
    print '{0} = {1}'.format(param_name, param_value)

【讨论】:

  • 你能解释一下它是如何工作的吗?如果有办法将整列捕获为列表,那就太好了(参见编辑中的示例)。
  • 如果您想以数组的形式检索数据,请使用 self.request.getall('name'),正如 Daniel 在他的回答中所说。真的,您只需要尝试这两种方法,看看哪种方法适合您。这是学习恕我直言的最佳方式
  • 我对此有点困惑,但我会继续尝试他的回答,谢谢。
  • 试试这个。在您的表格中,我想您有文本字段?对于每一列,使“名称”参数具有相同的值。因此,对于 A 列中的所有文本字段,将文本字段命名为“field_a”或其他名称。然后,在您的 python 脚本中,使用 self.request.getall('field_a'),它将返回一个包含名称为 'field_a' 的所有文本字段的列表。然后对列表做任何你需要的事情。
  • 太棒了。然后将另一个答案标记为正确的答案,因为这最终对你有用!!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多