如何获取切片(slice)属性

获取slice的属性

在登录后,打开slice(切片,为了方便理解,下文所说的切片都是slice)页面。


切片

页面下方会显示出切片列表。


image.png

点击切片的名字,进入切片配置页面。下图中红框中就是切片的配置项。


image.png

我们的目的是搞清楚,配置项中的每一项在后台存储过程中对应的字段是什么。
由于前端页面以接受json的形式来渲染页面,所以,只需从后台获取json字符串就能了解配置项的对应字段了。

superset基于Flask开发,而flask默认约定路由相关信息都放在superset/views文件夹内,在文件夹中有一个core.py,基本上大多数路由信息都在这个文件中。
经过一番搜索(这个方法是返回json的,所以可以搜索关键字“json”,“result”等进行查找)之后,发现了返回json字符串的方法。
函数位置:/superset/views/core.py 1012行


image.png

然后在viz_obj变量这行打个断点,因为我想要的信息都在这个viz_obj对象内,所以需要重点关注。接着,运行程序(开启DEBUG模式),打开这个切片的配置页面,发现进入了debug模式,而且程序停在断点了,按一下F8(执行到下一句),这时debug窗口就有了viz_obj对象的详细信息了。pycharm很智能,当我们把鼠标指针悬停在变量上3秒钟后会弹出一个属性框,点击后会弹出一个如图所示的属性树,这个对象的所有信息都在这里,很方便调试。


image.png

顺便说一下get_viz(datasource_type, datasource_id, args)函数的3个参数。
datasource_type表示数据源类型
datasource_id表示数据源id
args是参数列表,其中就包含了我们要找的json字符串。

解析json字符串

现在我们已经拿到了json字符串,可以都写在了一行,不易查看。
可以使用在线格式化json工具,百度“在线格式化json”。
把json字符串复制到输入框即可,然后点击“格式化”即可。


在线格式化json

格式化后的json如图所示。


image.png

最后一步

按照json中的数据来对应字段,找出各个配置对应的字段是什么。

你可能感兴趣的:(如何获取切片(slice)属性)