美文网首页
如何获取切片(slice)属性

如何获取切片(slice)属性

作者: 转身丶即天涯 | 来源:发表于2018-02-06 15:22 被阅读42次

    获取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)属性

          本文链接:https://www.haomeiwen.com/subject/nrsuzxtx.html