我有一个html文档,该文档动态允许用户创建表。有一个“添加行”按钮,通过单击该按钮,他们可以向表中添加一行输入。添加的代码如下所示:
<tr>
<td class = 'sct_components_input'> <input class = 'sct_components_input_5'> </input> </td>
<td class = 'sct_components_input'> <input class = 'sct_components_input_5'> </input> </td>
<td class = 'sct_components_input'> <input class = 'sct_components_input_10'> </input> </td>
<td class = 'sct_components_input'> <input class = 'sct_components_input_10'> </input> </td>
<td class = 'sct_components_input'> <textarea class = 'sct_components_input_15'> </textarea> </td>
<td class = 'sct_components_input'> <input class = 'sct_components_input_5'> </input> </td>
<td class = 'sct_components_input'> <input class = 'sct_components_input_5'> </input> </td>
<td class = 'sct_components_input'> <textarea class = 'sct_components_input_15'> </textarea> </td>
</tr>
因此,我剩下的表中有一个用户创建了X数量的行的大量输入,此值将随每个用户而变化。我需要使用FLASK(sqlalchemy)将所有这些输入上传到mysql表。但是我不知道如何上传这些输入。
我的最佳猜测是,您将不得不循环sqlalchemy上传查询多次,一次上传1行。类似于将CSV文件上传到sqlalchemy的方式。
但是,我不知道如何给每个输入一个唯一的“名称”,从而允许该表格被上传。
答案 0 :(得分:1)
假设您动态创建的表如下所示:
<form>
<table>
<tr>
<td><input name="first_name"></td>
<td><input name="age"></td>
</tr>
<tr>
<td><input name="first_name"></td>
<td><input name="age"></td>
</tr>
</table>
</form>
然后,在python中,您可以按以下方式访问所有数据:
first_names = request.form.getlist('first_name')
ages = request.form.getlist('age')
for first_name, age in zip(first_names, ages):
person = Person(first_name, age)
db.session.add(person)
db.session.commit()
此方法允许您获取DOM中具有相同名称的所有输入元素。然后,您可以使用zip()
将获取的名称列表与获取的年龄列表进行组合。这样,您可以动态地向数据库添加多个匹配项。
另一种方法是为DOM元素赋予唯一的名称,但这要容易一些。