Javascript 在Flask中创建的表中对列进行排序

Javascript 在Flask中创建的表中对列进行排序,javascript,python,flask,Javascript,Python,Flask,我编写了一个Flask应用程序,它以具有多列的表的形式显示一些数据。每列都有一个标题单元格。单击列的标题单元格,我想根据列的先前状态向上或向下排序列的内容。由于点击检测发生在浏览器中,因此我似乎需要创建一个javascript点击处理程序,该处理程序需要通知服务器上的应用程序,然后该应用程序将对表进行排序并重新显示 作为一名javascript程序员,我不知道如何建立这种联系。我该怎么做?有没有一种更简单的方法来完成我想要的任务?不需要JavaScript,您可以在呈现模板时提供一个带有排序参数

我编写了一个Flask应用程序,它以具有多列的表的形式显示一些数据。每列都有一个标题单元格。单击列的标题单元格,我想根据列的先前状态向上或向下排序列的内容。由于点击检测发生在浏览器中,因此我似乎需要创建一个javascript点击处理程序,该处理程序需要通知服务器上的应用程序,然后该应用程序将对表进行排序并重新显示


作为一名javascript程序员,我不知道如何建立这种联系。我该怎么做?有没有一种更简单的方法来完成我想要的任务?

不需要JavaScript,您可以在呈现模板时提供一个带有排序参数的dict。这不是一个完整的代码,但这应该能让人理解:

sortparams = { 'sortby': 'column_name', 'sortdir': 'asc' }

...

return render_template('example.html', sortparams=sortparams)
根据设置,在模板中显示相应的表列标题,并在用户单击标题时调用相同的视图,同时更改排序参数

如果用户单击当前已排序列的列标题,请按照以下行重置排序:

{% if sortparams.sortby == 'column_name' %}
<a href="url_for('sameroute', sortby=None)">Column_Name, sorted by</a>
{% endif %}
{%if sortparams.sortby=='列名称'%}
{%endif%}
如果在调用视图时未提供排序参数,请在呈现模板时使用指示“无排序”的默认值对其进行初始化

编写一个方便的函数来提取排序参数,您可以在每个需要排序的路由中重复使用它


如果您的表也已完全生成,并且不必手动重复几十列,则此方法显然效果最佳。

检查。如果下面的答案对您有效,请告诉我,如果您遇到问题,我可以明天向您提供此方法的完整代码。