獲取slice的屬性
在登錄后,打開slice(切片,為了方便理解,下文所說的切片都是slice)頁面。
頁面下方會顯示出切片列表。
點擊切片的名字,進入切片配置頁面。下圖中紅框中就是切片的配置項。
我們的目的是搞清楚,配置項中的每一項在后臺存儲過程中對應的字段是什么。
由于前端頁面以接受json的形式來渲染頁面,所以,只需從后臺獲取json字符串就能了解配置項的對應字段了。
superset基于Flask開發,而flask默認約定路由相關信息都放在superset/views文件夾內,在文件夾中有一個core.py,基本上大多數路由信息都在這個文件中。
經過一番搜索(這個方法是返回json的,所以可以搜索關鍵字“json”,“result”等進行查找)之后,發現了返回json字符串的方法。
函數位置:/superset/views/core.py 1012行
然后在viz_obj變量這行打個斷點,因為我想要的信息都在這個viz_obj對象內,所以需要重點關注。接著,運行程序(開啟DEBUG模式),打開這個切片的配置頁面,發現進入了debug模式,而且程序停在斷點了,按一下F8(執行到下一句),這時debug窗口就有了viz_obj對象的詳細信息了。pycharm很智能,當我們把鼠標指針懸停在變量上3秒鐘后會彈出一個屬性框,點擊后會彈出一個如圖所示的屬性樹,這個對象的所有信息都在這里,很方便調試。
順便說一下get_viz(datasource_type, datasource_id, args)函數的3個參數。
datasource_type表示數據源類型
datasource_id表示數據源id
args是參數列表,其中就包含了我們要找的json字符串。
解析json字符串
現在我們已經拿到了json字符串,可以都寫在了一行,不易查看。
可以使用在線格式化json工具,百度“在線格式化json”。
把json字符串復制到輸入框即可,然后點擊“格式化”即可。
格式化后的json如圖所示。
最后一步
按照json中的數據來對應字段,找出各個配置對應的字段是什么。