60行Python代码轻松搞定数据库查询 1秒找到需要的数据( 二 )


60行Python代码轻松搞定数据库查询 1秒找到需要的数据

文章插图
 
注意,我们这里使用到的Table()部件来自dash_bootstrap_components,而表格其余的构成部件均来自Dash原生的dash_html_components库,这些部件分别的作用如下:
  • 「Table()」
Table()是一张静态表格最外层的部件,而之所以选择dash_bootstrap_components中的Table(),是因为其自带了诸多实用参数,常用的如下:
?
【60行Python代码轻松搞定数据库查询 1秒找到需要的数据】「bordered」:bool型,用于设置是否「保留」表格外边框线
「borderless」:bool型,用于设置是否「删除」表格内部单元格框线
「striped」:bool型,用于设置是否对数值行应用「斑马着色」方案,即相邻行背景色不同
「dark」:bool型,用于设置是否应用「暗黑」主题
「hover」:bool型,当设置为True时,鼠标悬浮于某行会有对应的效果
?
通过上述参数,我们就可以改变静态表格的整体效果,譬如设置dark=True之后的app1.py效果如下:
60行Python代码轻松搞定数据库查询 1秒找到需要的数据

文章插图
 
  • 「Thead()与Tbody()」
在部件Table()之下一级需要子元素Thead()与Tbody(),分别用于存放表头信息以及表数值内容信息 。
  • 「Tr()、Th()与Td()」
经过前面Table()嵌套Thead()与Tbody()的过程之后,我们就可以分别开始在「表头区域」和「数值区域」正式组织数据内容 。
既然是一张表格,那么还是要按照先行后列的网格方式组织内容 。而Tr()部件的作用就是作为行容器,其内部嵌套的子元素则是表格中每个单元格位置上的元素 。
其中在Thead()嵌套的Tr()内部,需要使用Th()来设置每列的字段名称,而在Tbody()嵌套的Tr()内部,Td()与Th()都可以用来设置每个单元格的数值内容,只不过Th()在表现单元格数值时有加粗效果:
?
app2.py
?
import dashimport dash_html_components as htmlimport dash_bootstrap_components as dbcapp = dash.Dash(__name__)app.layout = html.Div(    dbc.Container(        dbc.Table(            [                html.Thead(                    html.Tr(                        [                            html.Th('字段1'),                            html.Th('字段2')                        ]                    )                ),                html.Tbody(                    [                        html.Tr(                            [                                html.Th('1'),                                html.Td('test')                            ]                        ),                        html.Tr(                            [                                html.Th('2'),                                html.Td('test')                            ]                        ),                        html.Tr(                            [                                html.Td('3'),                                html.Td('test')                            ]                        )                    ]                )            ],            striped=True        ),        style={            'margin-top': '50px'  # 设置顶部留白区域高度        }    ))if __name__ == '__main__':    app.run_server(debug=True)


推荐阅读