python - 如何从 HTML 表接收行信息到 Python Flask

标签 python html flask

我正在使用 Flask 开发一个简单的 Web 前端,它显示数据库中的表格,当用户选择特定行时,Flask 会获取所选行的特定列的信息。

使用以下代码,我显示一个包含5 列数据和最后一列“提交”按钮的表格。当特定行的“提交”按钮时,第二列(“标题”)信息应该被发布回 Flask 应用程序。

它的工作效率为 90%,因为单击按钮时,始终会发布第一行信息,即使选择了不同的行也是如此。有人能弄清楚这里出了什么问题吗?

谢谢!

这是 flask 代码

@app.route("/", methods=["GET", "POST"])
def home():
    df = pd.read_excel('database.xlsx')
    this_list = df.values.tolist()
    if request.method =="POST":
        if request.form.get('select_song') == 'select':
            print('selected')
            print(request.form.get("title"))
    return render_template('basic_table.html', title='Basic Table',
                           table=this_list)

这是一个 basic_table.html

<form method="POST">
  <table id="data" class="table table-striped">
    <thead>
      <tr>
        <th>Type</th>
        <th>Title</th>
        <th>Location</th>
        <th>Translation</th>
        <th>Content</th>
        <th>selection</th>
      </tr>
    </thead>
    <tbody>
      {% for row in table %}
        <tr>
          <td>{{ row[0] }}</td>  
          <td><input type="hidden" name="title" value="{{ row[1] }}"> {{ row[1] }}</td>
          <td>{{ row[2] }}</td>
          <td>{{ row[3] }}</td>
          <td>{{ row[4] }}</td>
          <td>
            <input class="form__submit form__input" type="submit" value="select" name="select_song"/>
          </td>
        </tr>
      {% endfor %}
    </tbody>
  </table>
{% endblock %}
</form>

最佳答案

当您单击类型为“提交”的按钮时,它将提交附加到该提交按钮的表单。提交表单意味着它将通过名称/值对传递 html 元素。

在您的代码中,您只有 1 个表单,并且每行都有相同的输入元素,名称为 title。因此,当您提交表单时,它将提交 title

的第一个实例

这里有两种可能的解决方案

  1. 您更改代码,以便每行都有一个表单。这样,当您提交时,您只是提交该行的表单。

  2. 您保持代码不变,但添加 Javascript 代码来“拦截”您的提交操作。然后,您的 JS 代码将确定您单击了哪一行,选择该行中标题的值,并使用该值手动提交表单。

关于python - 如何从 HTML 表接收行信息到 Python Flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71541864/

相关文章:

python - 无法通过 Flask 应用程序 Pod 连接到 MongoDB Pod

python urllib2 多重下载

html - 与背景图像相关的问题仅在 IE8 中不显示

javascript - JQuery keyup不触发,直接改成点击触发

python - Flask @route 错误

python - 身份验证 token 仅适用于一个 ID

Python 三角函数返回复数?

python - 如何打印特定的json列表项?

python - 获取对象名称的问题

python - 使用 Python 示例发送电子邮件失败