Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask:通过request.form.Get()方法从多行获取不同的数据_Python_Html_Flask - Fatal编程技术网

Python flask:通过request.form.Get()方法从多行获取不同的数据

Python flask:通过request.form.Get()方法从多行获取不同的数据,python,html,flask,Python,Html,Flask,我将Python与flask web框架结合使用。 我有一个3行的网页(也可以少一行或多一行),服务器名可以由用户更新。您可以在附件中看到页面布局。 我在html代码中使用for循环,根据主机名和主机号获取要填充的行。代码是: ... <table class="table table-hover"> <tbody> {% for h in todos_host %} <tr class="th

我将Python与flask web框架结合使用。 我有一个3行的网页(也可以少一行或多一行),服务器名可以由用户更新。您可以在附件中看到页面布局。

我在html代码中使用for循环,根据主机名和主机号获取要填充的行。代码是:

...
<table class="table table-hover">

          <tbody>
            {% for h in todos_host %}
            <tr class="thead-dark">
                <th scope="row" width="30%">Check link: {{ h.hostname }}</th>
                <td width="70%"><input class="form-control" name="checklink" type="text" placeholder="ex. http://xxxx"></td>

            </tr>
            {% endfor %}


          </tbody>
       </table>
...
。。。
{todos_主机%中h的%s}
检查链接:{h.hostname}
{%endfor%}
...
最终用户将在标有“ex.”占位符的字段中输入不同的数据。
在我的主脚本中,我试图通过request.form.get('checklink')获取行的值,但这一行只获取第一个值(对于gerenbach服务器)。如何在循环中使用此方法来获取每一行的值?

不能对每个输入使用相同的名称,应使用不同的方法来标识每个输入。您可以使用
name=“checklink{{loop.index}}”
然后调用
request.form.get('checklink1')
request.form.get('checklink2')
。。。但对于多行,这种模式并不那么清晰。最好的方法可能是以不同的方式构建todos_host,例如,作为dict列表,使用一个与每个主机匹配的清除键。如果您需要更多帮助,请发表您的观点谢谢@PRMoureu我现在可以从不同的字段获取数据,但现在更新数据库是一个问题。当我将数据插入数据库时,要么写入相同的数据,要么只更新最后一列。我认为,正如您所说,最好更改为todos_主机数据类型。我会试试。。。