详解ECharts使用心得总结


Posted in Javascript onDecember 06, 2016

前言

上周项目组要临时给客户做一个演示的原型,首页设计的是一个中国地图,本来打算用谷歌的地图,但是,做出来之后,整体的效果看起来太差了,最后就在网上搜相关的地图呈现的控件,然后就找到了这个ECharts报表呈现组件,挺不错的一个组件,而且地图数据都是离线的,真心很赞。但是,使用起来却颇费了一番工夫。所以就把使用中的一些心得体会跟大家分享一下。

1.    插件的下载

以下是ECharts的下载链接,需要注意的是ECharts内部也是依赖于另一个插件的叫ZRender,当然对于大部分图表而言不需要ZRender的,但是对于地图控件及其他复杂的呈现控件而已都是需要ZRender的。为了避免不要的问题出现,建议大家在下载ECharts时同时也要下载ZRender。

ECharts下载地址: http://echarts.baidu.com/

ZRender下载地址:http://ecomfe.github.io/zrender/index.html

下载之后解压各自的文件目录结构如下:

ECharts:

详解ECharts使用心得总结      

ZRender:

详解ECharts使用心得总结

2.    插件的引用

首先,新建一个Web应用程序,然后添加刚刚下载的文件,具体的目录结构如下:

详解ECharts使用心得总结

这里有以下几点需要说明:

1、所有的跟ECharts有关的文件全部都在echarts文件夹下

2、echarts文件夹的内容分为两部分

1)  一部分是以echarts开头的js文件,这些文件全部来自于1.中的ECharts文件目录中的js文件夹下的文件,也就是1.中的图中红框标注的js下的文件。如下:

详解ECharts使用心得总结

2) 另一部分是一个名为zrender的文件夹,这里需要特别注意的是该文件夹的命名必须为zrender,因为在echarts的js文件中对zrender的引用都是以zrender为根目录的,zrender文件夹的内容即为1.中zrender文件目录中的src文件夹下的内容,如下:

详解ECharts使用心得总结

3.    在页面中的具体使用

按照上边的步骤配置过之后,我们就可以在页面中引用了,这里我主要是演示地图控件的使用方式,因为地图的引用跟其他的基本图形的引用不太一样。其他的图形的呈现也会做一个简要的演示。

3.1 MapChart

首先在跟2中的echarts文件夹同一个目录(也就是Modules文件夹)下添加一个aspx页或html页,需要注意的是,如果是在aspx页中使用echarts时,需要把要渲染的div放在form标签之外,否则图形是显示不出来的。

3.1.1 在head标签中添加对echarts的引用如下:

<head runat="server"> 
  <title></title> 
  <script src="echarts/esljs" type="text/javascript"></script> 
</head>

3.1.2 在body标记中,form标记之外,添加一个div,用来做图表渲染的容器。如下:

<body> 
 
<div id="main"style="height:500px;border:1px solid #ccc;padding:10px;"></div> 
 
…………… 
 
…………… 
 
</body>

3.1.3 在3.1.3中添加的div标记下,添加如下的js代码段,如下:

<script type="text/javascript"> 
 
    //为模块加载器配置echarts的路径,这里主要是配置map图表的路径,其他的图表跟map的配置还不太一样,下边也会做另一种类型的图表事例。 
这里引用的主要是echarts文件夹下的echarts-map文件,而其他类型的图表引用的都是echarts文件夹下的echarts文件。 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/map':'/echarts/echarts-map' 
 
      } 
 
    }); 
 
   //动态加载echarts,在回掉函数中使用,要注意保持按需加载结构定义图表路径 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/map' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      //option主要是图标的一些设置,这不是这篇文章的重点,关于具体的设置可以参考官方的文档说明文档 
 
option= { 
 
        title: { 
 
          text:'iphone销¨²量¢?', 
 
          subtext:'纯ä?属º?虚¨¦构1', 
 
          x:'center' 
 
        }, 
 
        tooltip: { 
 
          trigger:'item' 
 
        }, 
 
        legend: { 
 
          orient:'vertical', 
 
          x:'left', 
 
          data: ['iphone3','iphone4','iphone5'] 
 
        }, 
 
        dataRange: { 
 
          min:0, 
 
          max:2500, 
 
          text: ['高?','低̨ª'],      // 文?本À?,ê?默?认¨?为a数ºy值¦Ì文?本À? 
 
          calculable:true, 
 
          textStyle: { 
 
            color:'orange' 
 
          } 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          orient:'vertical', 
 
          x:'right', 
 
          y:'center', 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        series: [ 
 
    { 
 
      name:'iphone3', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ffd700' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'重?庆¨¬',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'云?南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'辽¢¨¦宁t',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'黑¨²龙¢¨²江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'湖t南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'安ã2徽?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'新?疆?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-苏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'浙?江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'湖t北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'甘¨º肃¨¤',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'内¨²蒙¨¦古?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'陕¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'吉a林¢?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'福¡ê建¡§',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'贵¨®州Y',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'青¨¤海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'西¡Â藏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'四?川䡧',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'宁t夏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'海¡ê南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'台¬¡§湾ª?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone4', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ff8c00' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'重?庆¨¬',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'安ã2徽?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'新?疆?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'浙?江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'内¨²蒙¨¦古?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'吉a林¢?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'福¡ê建¡§',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'西¡Â藏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'四?川䡧',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'宁t夏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone5', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#da70d6' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'台¬¡§湾ª?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    } 
  ] 
      }; 
       //以下的这段代码主要是用来处理用户的选择,应用场景是可以做地图的交互,比如点击地图上的某一个省,获取相应的省的指标变化等。 
       //需要特别注意的是,如果需要点击某一省作地图的操作交互的话,还需要为series属性的每一项添加一个selectedMode属性,这里的属性值为 'single'即单选,也可多选 
  varecConfig= require('echarts/config'); 
      myCharton(ecConfigEVENTMAP_SELECTED,function (param) { 
        varselected=paramselected; 
        varmapSeries=optionseries[0]; 
        vardata= []; 
        varlegendData= []; 
        varname; 
        for (varp=0,len=mapSeriesdatalength; p<len; p++) { 
          name=mapSeriesdata[p]name; 
          mapSeriesdata[p]selected=selected[name]; 
          if (selected[name]) { 
            alert(name); //这里只是简单的做一个事例说明,弹出用户所选的省,如需做其他的扩展,可以在这里边添加相应的操作  
 
          } 
        } 
      });         
      myChartsetOption(option); 
    } 
  ); 
  </script>

3.1.4  完成以上操作之后,效果如下图所示:

详解ECharts使用心得总结

3.2 LineChart

除了地图图表之外的其他的图标的使用方式都差不多。事实上其他的图表跟地图图表的区别在于对配置文件的引用。这里只做一个折线图的示例,其它的示例都是一样的。

3.2.1 跟3.1.1一样,引入echarts脚本

3.2.2 跟3.2.2一样,添加渲染图表的div容器

3.2.3 在3.2.2添加的div下添加如下js代码块

<scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts',//这里需要注意的是除了mapchart使用的配置文件为echarts-map之外, 
其他的图形引用的配置文件都为echarts,这也是一般的图形跟地图的区别 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      option= { 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['邮®¨º件t营®a销¨²','联¢a盟?广?告?','视º¨®频¦Ì广?告?','直¡À接¨®访¤?问¨º','搜?索¡Â引°y擎?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'邮®¨º件t营®a销¨²', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [120,132,101,134,90,230,210] 
 
    }, 
 
    { 
 
      name:'联¢a盟?广?告?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [220,182,191,234,290,330,310] 
 
    }, 
 
    { 
 
      name:'视º¨®频¦Ì广?告?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [150,232,201,154,190,330,410] 
 
    }, 
 
    { 
 
      name:'直¡À接¨®访¤?问¨º', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [320,332,301,334,390,330,320] 
 
    }, 
 
    { 
 
      name:'搜?索¡Â引°y擎?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [820,932,901,934,1290,1330,1320] 
 
    } 
 
  ] 
 
      };           
 
  
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main1"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts', 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main1')); 
 
      option= { 
 
        title: { 
 
          text:'未¡ä来¤¡ä一°?周¨¹气?温?变À?化¡¥', 
 
          subtext:'纯ä?属º?虚¨¦构1' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['最Á?高?气?温?','最Á?低̨ª气?温?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      axisLabel: { 
 
        formatter:'{value} °?C' 
 
      }, 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'最Á?高?气?温?', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [11,11,15,13,12,13,10] 
 
    }, 
 
    { 
 
      name:'最Á?低̨ª气?温?', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [-2,1,2,5,3,2,0] 
 
    } 
 
  ] 
 
      };           
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main2"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts', 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main2')); 
 
      option= { 
 
        title: { 
 
          text:'某3楼£¤盘¨¬销¨²售º?情¨¦况?', 
 
          subtext:'纯ä?属º?虚¨¦构1' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['意°a向¨°','预¡è购o','成¨¦交?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value' 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'成¨¦交?', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [10,12,21,54,260,830,710] 
 
    }, 
 
    { 
 
      name:'预¡è购o', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [30,182,434,791,390,30,10] 
 
    }, 
 
    { 
 
      name:'意°a向¨°', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [1320,1132,601,234,120,90,20] 
 
    } 
 
  ] 
 
      };           
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script>

3.2.4 完成以上操作之后效果图如下:

详解ECharts使用心得总结

好了,今天就总结到这里了,希望能给大家带来一些帮助。这里主要是介绍地图控件的使用,因为其官方文档上关于路径的配置写的很不清楚,所以才会想把这些走的弯路给总结一下。对于其他的图表控件的使用都很简单,大家可以参考官方的文档。http://echarts.baidu.com/doc/doc.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
JavaScript html5 canvas绘制时钟效果(二)
Mar 27 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
jQuery实现删除li节点的方法
Dec 06 #Javascript
详解springmvc 接收json对象的两种方式
Dec 06 #Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 #Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 #Javascript
vue2.0开发实践总结之入门篇
Dec 06 #Javascript
微信小程序中单位rpx和rem的使用
Dec 06 #Javascript
JavaScript定时器实现的原理分析
Dec 06 #Javascript
You might like
php递归函数中使用return的注意事项
2014/01/17 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
jQuery实现评论模块
2020/08/19 jQuery
Python 中 Meta Classes详解
2016/02/13 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python能开发游戏吗
2020/06/11 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
美国在线宠物商店:Chewy
2019/01/12 全球购物
护理中职生求职信范文
2014/02/24 职场文书
保护环境倡议书100字
2014/05/19 职场文书
会计学习心得体会
2014/09/09 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang