这是我的系列教程Python+Dash快速web应用开发的第十四期,在前两期中,我们针对的自定义样式、前后端分页、单元格内容编辑等特点展开了介绍。
而在中还有很多高级特性,可以极大程度上丰富所渲染网页表格的交互能力,今天的文章作为交互表格篇的下篇,我们就来一起学习其中比较实用的一些特性。
图1
上一期文章最后我们学习了通过设置参数,使得渲染出的表格可以通过鼠标双击进行编辑,而除此之外,还有更多实用的交互能力:
2.1.1 按列排序
在中,我们只需要设置参数,即可开启列排序功能,此时每一列列名单元格内都会出现部件供我们点击切换排序方式:
app1.py
图2
在中设置时,对应的是按列排序的前端模式,也即是数据一次性灌注到浏览器的前提下进行排序,这种方式不仅不适合大型数据集,而且只支持单列排序。
而当数据渲染方式为后端模式时,我们通过设置参数以及,配合在回调中获取属性中记录的参与排序的列名及升序降序方式,就可以实现多列排序。
我们在上一期的的基础上修改得到下面的例子:
app2.py
图3
2.1.2 按列条件筛选
除了基于指定字段进行排序之外,还支持列的条件筛选,设置,就可以开启基础的按列条件筛选功能,此时每一列表头下都会多出供用户输入筛选条件的单元格:
app3.py
图4
而中自带的条件筛选语法很丰富,有条件的朋友可以前往了解更多。
而同样可以实现后端筛选,和前面的后端排序类似,主要利用属性的回调变化在后台基于等框架进行数据筛选,比较简单,这里就不再赘述。
还自带了将当前所渲染的表格内容直接下载为或格式文件的简易功能,通过参数设置导出的文件格式,但自带的下载按钮样式比较丑,如果你对此有比较高的要求,还是建议结合之前的上传下载篇自己设计相关功能:
图5
通过设置参数,我们可以实现下滑查看表格的过程中,始终保持表头被冻结:
图6
在学习完今天的内容之后,我们来结合之前上传下载篇中提到的下载功能,来制作一个简单的对指定数据库中的数据表进行快速条件筛选并下载的工具,其中的属性记录了经过排序、条件筛选等操作后当前显示的表格数据:
图7
app4.py