如何获取切片(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中的数据来对应字段,找出各个配置对应的字段是什么。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,731评论 0 15
  • 我喜欢身边飞过的每只鸟 也常常喜欢拂过的清风 因为我希望鸟儿伴着清风 一个带着我的梦, 一个带着我的爱, 不远万里...
    下笔落忧伤阅读 2,895评论 0 2
  • 所谓计算机语言只是一个抽象的规范,而编译器是这个规范的实现,它是在这个规范的严格定义下被实现的. 说的通俗一点,语...
    光剑书架上的书阅读 5,232评论 0 2
  • 碎碎念 之前曾听过Sara说过边工作边参加个人成长集训营,是一件挺有挑战性的事情,现在的我总算能够切实体会到...
    吖坤要加油阅读 3,126评论 2 2