asp.net必须要放在form中吗_传闻:已经有人在0.33或0.34集成了Echarts(更新中)
據(jù)說后面會共享完整的步驟,有更詳細的信息再更新。
2019-11-04 更新:
搜集到的一些說明(以下引文來自微信群,作者Ayu,侵刪。說明為老王所加。):
具體集成無非是仿 官方插件,在對應 index.js 中注冊圖,編寫左測控制面板 js,注冊控制面板,npm build 即可說明:
官方插件,來自以下兩個github倉庫:
apache-superset/superset-ui-plugins?github.comapache-superset/superset-ui?github.com控制面板 js 加在這里:superset/assets/src/explore/controlPanels注冊控制面板在 superset/assets/src/explore/controlPanels/index.js圖表的注冊在 superset/assets/src/visualizations/presets/MainPreset.js 對應獲取數(shù)據(jù)則在superset/viz.py中新增一個對應的 Viz 類,注意重寫 get_data 和 query_obj 方法即可說明:還沒寫過Echarts的后端代碼,以下僅為現(xiàn)有圖表類型的注釋
class TimeTableViz(BaseViz):"""A data table with rich time-series related columns"""viz_type = 'time_table'verbose_name = _('Time Table View')credits = 'a <a href="apache/incubator-superset">Superset</a> original'is_timeseries = Truedef query_obj(self):d = super().query_obj()fd = self.form_dataif not fd.get('metrics'):raise Exception(_('Pick at least one metric'))if fd.get('groupby') and len(fd.get('metrics')) > 1:raise Exception(_("When using 'Group By' you are limited to use a single metric"))return ddef get_data(self, df):fd = self.form_datacolumns = Nonevalues = self.metric_labelsif fd.get('groupby'):values = self.metric_labels[0]columns = fd.get('groupby')pt = df.pivot_table(index=DTTM_ALIAS,columns=columns,values=values,dropna=False,)pt.index = pt.index.map(str)pt = pt.sort_index()return dict(records=pt.to_dict(orient='index'),columns=list(pt.columns),is_group_by=len(fd.get('groupby')) > 0,)后端的類必須從BaseViz繼承而來。
在注冊后端圖表類型時,要用到BaseViz,只有是BaseViz子類的class,才能把viz_type的值加入到列表:
viz_types = {o.viz_type: o for o in globals().values()if (inspect.isclass(o) andissubclass(o, BaseViz) ando.viz_type not in config.get('VIZ_TYPE_BLACKLIST'))}query_obj和get_data函數(shù):
這兩個函數(shù),從功能上說,比較容易理解:
只有某種viz_type對應的類,才知道如何處理前端傳來的參數(shù)(form_data),這就是query_obj函數(shù)。
才知道如何處理數(shù)據(jù)庫返回的結果,從原始的行列(或者叫矩陣),轉換成前端圖表控件需要的格式,這就是get_data函數(shù)。
放到BaseViz里面就能看到流程了。
query_obj函數(shù):
是為了構造query_obj 對象,這個對象用于控制如何生成sql語句,把前端傳過來的參數(shù)(form_data)轉換成sqla能理解的格式(代碼在connectors/sqla/models.py)。
get_data函數(shù):
是在全流程里面起作用的,可以加一個traceback到get_data函數(shù)里面,輸出堆棧。大致上,是前端調用經(jīng)過web服務,映射到views/core.py中的函數(shù)。
core.py中的Superset::generate_json函數(shù),調用viz的get_data函數(shù)。
總結
以上是生活随笔為你收集整理的asp.net必须要放在form中吗_传闻:已经有人在0.33或0.34集成了Echarts(更新中)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python判断两个列表内容是否一致_检
- 下一篇: promise链式调用_这一次,彻底弄懂