如何在没有 JS 或 HTML 修改表的情况下通过 Python 在 Flask 表的 sort_url 中设置反向参数?

rba*_*dar 5 python sorting flask flask-table

鉴于下表

class ProductsTable(Table):
  allow_sort=True

  id=Col('ID', show=False)
  price=Col('Price')
  available_online=Col('Available online?')
  available_num=Col('In stock')
  edit=ButtonCol('Edit', url_kwargs=dict(id='id'), endpoint='/products')

  def sort_url(self, col_id, reverse=False):
    if reverse:
      order = 'desc'
    else:
       order = 'asc'
    return '?sort={}&order={}'.format(col_id, order)
Run Code Online (Sandbox Code Playgroud)

由此我得到以下示例路径:

http://localhost:5000/products?sort=price&order=asc
http://localhost:5000/products?sort=available_num&order=asc
Run Code Online (Sandbox Code Playgroud)

我使用这些参数生成一个 SQL 查询,该查询在我的 SQLite 数据库上执行并呈现相应的排序表。

现在我的问题来自reverse我的sort_url. 我找不到任何没有它作为可选参数的示例,因此我无法找到任何告诉我如何设置此参数的示例。

当然,我可以随时更改 URL。对于上面的两个例子,这意味着

http://localhost:5000/products?sort=price&order=desc
http://localhost:5000/products?sort=available_num&order=desc
Run Code Online (Sandbox Code Playgroud)

但是,我希望在用户单击特定表格列的头部时更改顺序。

我怎么做?我是否必须使用实际的 HTML(并添加 JavaScript)或者是否可以通过 Flask 来完成。我在网上看到的表格通常有向上/向下箭头符号

在此处输入图片说明

每当点击时,切换排序顺序。

这涉及到 JS 和 HTML 的修改。如果可能的话,我想坚持使用 Flask 和 Python。Flask 表目前似乎工作的方式是单击无法切换reverse.

即使我reverse像这样将参数公开给我自己表的构造函数

def __init__(self, items, reverse):
  super().__init__(items, sort_reverse=reverse)
Run Code Online (Sandbox Code Playgroud)

这样我就可以根据从 URL 中提取的值来设置它,我的问题如何实际设置该值仍未得到解答。