如何为每一行创建 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 函数进行查询的主要内容,如果未能解决你的问题,请参考以下文章