如何为每一行创建 HTML 表格按钮并将第一列的值输入到 Flask 函数进行查询

Posted

技术标签:

【中文标题】如何为每一行创建 HTML 表格按钮并将第一列的值输入到 Flask 函数进行查询【英文标题】:How to create HTML table button for each row and input first column's value to Flask function for query 【发布时间】:2021-12-14 23:59:18 【问题描述】:

我有一个 html 表格,我想为最后一列的每一行添加一个名为 “更多详细信息” 的按钮。

我希望当我点击每一行的“更多详细信息”按钮时,month的值(这是表格的第一列,例如:'2021-10') 将发送到烧瓶函数以仅查询该特定月份的信息,然后浏览器将跳转到另一个 HTML 文件 (monthly_sales_report_sub.html),该文件将新信息显示为包含一行的表。

使 HTML 代码和烧瓶功能工作的最佳方法是什么? 我当前的代码将在monthly_sales_report_sub.html 上显示所有月份记录

提前致谢!

下面的 HTML 代码 (monthly_sales_report.html):

           <table width=80%>
                <!-- Show Report Table -->
                <thead>
                    <tr>
                        % for header in headings %
                        <th> header </th>
                        % endfor %
                    </tr>
                </thead>
                <tbody>
                    % for row in data %
                    <tr>
                        % for cell in row %
                        <td> cell </td>
                        % endfor %
                        <td class="td-actions text-right">
                            <a href=monthly_sales_report_sub><input type="submit" value="more details"><</input></a>
                        </td>
                    </tr>
                    % endfor %
                </tbody>
            </table>

我当前的烧瓶函数如下所示:

@api.route('/monthly_sales_report', methods=['GET'])
def monthly_sales_table():
    return render_template("monthly_sales_report.html", headings=SQL_Operations.get_monthly_sales_report(connection)['headings'], data=SQL_Operations.get_monthly_sales_report(connection)['rows'])

@api.route('/monthly_sales_report_sub', methods=['GET'])
def monthly_sales_table_sub():
    return render_template("monthly_sales_report_sub.html", headings=SQL_Operations.get_monthly_sales_report_sub(connection)['headings'], data=SQL_Operations.get_monthly_sales_report_sub(connection)['rows'])

SQL_Operations.py

def get_monthly_sales_report_sub(connection):
    cursor = connection.cursor()
    query = ("""SELECT month, sales_person, total_num_sold, total_sales FROM Sale;""")
    cursor.execute(query)
    res = []
    for (month, sales_person, total_num_sold, total_sales) in cursor:
        res.append([month, sales_person, total_num_sold, total_sales])
    res_new = dict()
    res_new['headings'] = ['month', 'sales_person', 'total_num_sold', 'total_sales']
    res_new['rows'] = res
    return res_new

【问题讨论】:

【参考方案1】:

在烧瓶中,您可以使用参数创建路由

@app.route('/detail/<month>',methods = ['GET'])

在您的表格中,您可以使用按钮或标签按钮:

<a href= url_for('detail',month = your_row_month_value)  ... 

您必须将 url_for 添加到您的 Flask 导入中

【讨论】:

以上是关于如何为每一行创建 HTML 表格按钮并将第一列的值输入到 Flask 函数进行查询的主要内容,如果未能解决你的问题,请参考以下文章

如何为表格中的每一行创建一个删除按钮?

js 表格的每一行都有一个按钮 点击按钮修改当前行某一列的信息

如何为表格的每一行创建展开/折叠功能?角6

在 SQL 中,如何为另一列的每个不同值创建新的值列?

怎样读取excel某一列的每一行内容

添加行时如何获取表列的值