通过Python Flask从一个HTML输入中获取多个值

Sim*_*uah 3 html python jinja2 flask python-2.7

我有一个动态生成的行数,其中包含一个默认值(order_quantity)的表格中的文本框.基本上在帖子上我希望我的sql项目表根据他们的ID更新这些文本框的值.

{% for i in items %}
        <tr>
            <td>
                ...
            </td>
            <td>
                ...
            </td>
            <td>
                <div class="form-group">
                    <input type="number" id="amount" name="amount"  value="{{ i.order_quantity }}">
                </div>
            </td>
            <td>
             ...
             </td>
        </tr>
        {% endfor %}
Run Code Online (Sandbox Code Playgroud)

传递order_quantity或项目ID没有问题,但显然不是.

HTML:

<input type="number" id="amount" name="amount"  value="{{i.item_id}} {{ i.order_quantity }}">
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

amount = request.form.getlist('amount')
print amount
for i in amount:
    print i
Run Code Online (Sandbox Code Playgroud)

总之,如何以简单的方式传递数量及其相对id,以便为每个文本框轻松提取服务器端?

jun*_*ony 5

我认为你可以通过添加一个包含item_id的隐藏输入字段来实现你想要的

例:

<td>
    <div class="form-group">
        <input type="number" id="amount" name="amount"  value="{{ i.order_quantity }}">
        <input type="hidden" name="item_id" value="{{ i.item_id }}"/>
    </div>
</td>
Run Code Online (Sandbox Code Playgroud)

当您在Flask中收到输入时,您可以将ID与自订单保留后的金额相匹配.

amounts = request.form.getlist('amount')
item_ids = request.form.getlist('item_id')
for item_id, idx in enumerate(item_id):
    amount = amounts[idx]
    # do something with item_id and amount
Run Code Online (Sandbox Code Playgroud)