日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

asp.net必须要放在form中吗_传闻:已经有人在0.33或0.34集成了Echarts(更新中)

發布時間:2025/3/12 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net必须要放在form中吗_传闻:已经有人在0.33或0.34集成了Echarts(更新中) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

據說后面會共享完整的步驟,有更詳細的信息再更新。


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 對應獲取數據則在superset/viz.py中新增一個對應的 Viz 類,注意重寫 get_data 和 query_obj 方法即可

說明:還沒寫過Echarts的后端代碼,以下僅為現有圖表類型的注釋

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函數:

這兩個函數,從功能上說,比較容易理解:

只有某種viz_type對應的類,才知道如何處理前端傳來的參數(form_data),這就是query_obj函數。

才知道如何處理數據庫返回的結果,從原始的行列(或者叫矩陣),轉換成前端圖表控件需要的格式,這就是get_data函數。

放到BaseViz里面就能看到流程了。

query_obj函數:

是為了構造query_obj 對象,這個對象用于控制如何生成sql語句,把前端傳過來的參數(form_data)轉換成sqla能理解的格式(代碼在connectors/sqla/models.py)。

get_data函數:

是在全流程里面起作用的,可以加一個traceback到get_data函數里面,輸出堆棧。大致上,是前端調用經過web服務,映射到views/core.py中的函數。

core.py中的Superset::generate_json函數,調用viz的get_data函數。

總結

以上是生活随笔為你收集整理的asp.net必须要放在form中吗_传闻:已经有人在0.33或0.34集成了Echarts(更新中)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。