前言: 后面要开发测试管理平台,需要用到数据可视化,所以研究了一下

先看下最后的图吧,单击最上方的按钮可以控制柱状图显隐

views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import json
from django.shortcuts import render
import pymysql def showcase(request):
"""
从数据库中读取作者的用例信息,并用于前台可视化展示
:param request:
:return:
"""
db = pymysql.connect("localhost", "root", "guchen", "guchen_test", charset='utf8')
cursor = db.cursor()
sql = "select * from userCaseInfo"
cursor.execute(sql)
results = cursor.fetchall()
print results
# 向js中传递数据必须json.dumps()处理
return render(request, "showcase.html", {'caseInfo': json.dumps(list(results))})

showcase.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>showcase</title>
{# 引入jQuery#}
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!-- 引入本地的 echarts.js -->
<script src="../static/js/echarts.js"></script>
</head>
<body>
<div id="main" style="width: 1000px;height: 500px">
{% block content %}
<!--echarts图表-->
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main')); // 显示标题,图例和空的坐标轴
myChart.setOption({
legend: {},
tooltip: {},
dataset: {
source: [
[],
[], //这里一定要把最内层的数据清除掉
[]
]
},
xAxis: {type: 'category'},
yAxis: {},
// Declare several bar series, each will be mapped
// to a column of dataset.source by default.
series: [
{type: 'bar'},
{type: 'bar'},
{type: 'bar'}
]
}); var caseInfo={}; //请求前先不要获取后端返回的数据,先定义空的字典(去掉也没事)
// 注意这里的参数值,showcase表示视图函数,caseInfo是后台传过来的数据
$.get('/showcase/').done(function (caseInfo) {
caseInfo = {{ caseInfo|safe}}; // 获取后台传来的数据需要加上safe过滤
uname = caseInfo[0][1]
// 将source中不变的第一个列表元素初始化进来
var source = [['product', '总数', '成功', '失败']];
// 使用for循环将caseInfo中的数据循环遍历push进source列表中
for(var i=0; i< caseInfo.length;i++)
{
source.push([caseInfo[i][1], caseInfo[i][2], caseInfo[i][3], caseInfo[i][4]])
myChart.setOption({
dataset: {
// 引用添加了数据的变量source
source: source
}
});
}
});
</script>
{% endblock %}
</div> </body>
</html>

使用的Echarts模板是:

option = {
legend: {},
tooltip: {},
dataset: {
source: [
['product', '总数', '成功', '失败'],
['Matcha Latte', 43.3, 85.8, 93.7],
['Milk Tea', 83.1, 73.4, 55.1],
['Cheese Cocoa', 86.4, 65.2, 82.5],
['Walnut Brownie', 72.4, 53.9, 39.1]
]
},
xAxis: {type: 'category'},
yAxis: {},
// Declare several bar series, each will be mapped
// to a column of dataset.source by default.
series: [
{type: 'bar'},
{type: 'bar'},
{type: 'bar'}
]
};

Django工程中使用echarts怎么循环遍历显示数据的更多相关文章

  1. JavaScript 中的12种循环遍历方法

    原文:JavaScript 中的12种循环遍历方法 题目:请介绍 JavaScript 中有哪些循环和遍历的方法,说说它们的应用场景和优缺点? 1.for 循环 let arr = [1,2,3];f ...

  2. 高效遍历匹配Json数据与双层for循环遍历Json数据

    工作中往往遇到这种情况,保留用户操作痕迹,比如用户选择过得东西,用户进入其它页面再返回来用户选择的的数据还在. 比如:1.购物车列表中勾选某些,点击任意一项,前往详情页,再返回购物车依旧需要呈现勾选状 ...

  3. Vue之循环遍历Json数据,填充Table表格

    简单记一次Vue循环遍历Json数据,然后填充到Table表格中,展示到前端的代码: async getData(id) { const res = await this.$store.api.new ...

  4. JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{&quot;options&quot;:&quot;[{

    JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options&q ...

  5. 如何让django模型中的字段和model名显示为中文

    如何让django模型中的字段和model名显示为中文:在模型中加入class Meta即可 class People(models.Model): name = models.CharField(n ...

  6. javascript中的12种循环遍历方法1

    1:for循环 let arr = [1,2,3]; for(let i =0;i<arr.length;i++){ console.log(i,arr[i]) } //for循环是js中最常用 ...

  7. aspnet中通过多条件筛选来显示数据的实现

    UI图: 功能实现: 1.勾选住哪个选项之后,就加入了筛选.支持姓名的模糊查询. 2.对筛选出来的数据可以直接修改,并更新回数据库. 说明:显示的数据来自T_User表.数据显示控件使用的是 List ...

  8. Struts1.x 中处理乱码及通过标签显示数据

    1.通过filter解决乱码问题 网页的请求到达之前,先要经过filter的处理: 提取数据出现乱码:request.setCharacterEncoding("UTF-8"); ...

  9. javascript中的12种循环遍历方法

    1.for (自定义条件) 循环 let arr = [1,2,3]; for(let i =0;i<arr.length;i++){ console.log(i,arr[i]) } 2.for ...

随机推荐

  1. NIOS EDS最容易出错的地方

    越来越多的人使用NIOS II.毕竟,NIOS II是世界上功能最多的软核处理器. NIOS EDS通常是在装QUARTUS的时候一起装上的.通常我们在用的时候都是以模板建立工程的. 在很多情况下,我 ...

  2. mysql索引之六:mysql高效索引之覆盖索引

    概念 如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作 判断标准 使用explain,可以通过输出的extra列来判断,对于一个索引 ...

  3. LT3756/LT3756-1/LT3756-2 - 100VIN、100VOUT LED 控制器

    LT3756/LT3756-1/LT3756-2 - 100VIN.100VOUT LED 控制器 特点 3000:1 True Color PWMTM调光 宽输入电压范围:6V至 100V 输出电压 ...

  4. 编写一个jQuery的扩展方法(插件)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. List<T>直接充当Combox控件DataSource并扩展自定义记录的方法

    一般认为List只有转换为DataTable后才能充当CombBox的数据源,其实不然: List<SYS_COMMANDS> comdList = _menuMan.Load(c =&g ...

  6. Centos7 第三方仓库 yum 方式安装 PHP7.2

    1.卸载原先安装的PHP yum remove php rpm -qa|grep php #列出所有的php相关的rpm包 rpm -e xxx #xxx指的是上一个命令列出的rpm包的包名,复制即可 ...

  7. leetcode788

    public class Solution { public int RotatedDigits(int N) { ; ; i <= N; i++) { var str = i.ToString ...

  8. c++builder PM2.5

    c++builder PM2.5 TMemoryStream *ms = new TMemoryStream(); this->NetHTTPClient1->Get("http ...

  9. ArcEngine开发遇到的问题(转)

    ArcEngine开发遇到的问题 https://blog.csdn.net/u013751758/article/category/6971559 转载 2018年02月11日 17:28:11 1 ...

  10. ARCGIS中怎么去除重复的面?(转)

    ARCGIS中怎么去除重复的面? https://blog.csdn.net/gswwldp/article/details/66974522   第一种: 1.用polygon to line将面转 ...