Twitter bootstrap 在web2py引导页面中嵌入d3.js图形
下面是我如何将d3.js与web2py控制器一起使用的示例。这对我有用 但是,我更愿意在使用web2py默认引导布局的现有引导页面中使用d3.js。当我将此d3.js代码放入引导布局时,它不会导致任何错误,但我没有看到Twitter bootstrap 在web2py引导页面中嵌入d3.js图形,twitter-bootstrap,d3.js,web2py,Twitter Bootstrap,D3.js,Web2py,下面是我如何将d3.js与web2py控制器一起使用的示例。这对我有用 但是,我更愿意在使用web2py默认引导布局的现有引导页面中使用d3.js。当我将此d3.js代码放入引导布局时,它不会导致任何错误,但我没有看到标记附加到 有人能举个例子说明如何做到这一点吗 控制器/d3js.py: import random def histogram(): dataset = [(random.randint(1,6) + random.randint(1,6)) for i in rang
标记附加到
有人能举个例子说明如何做到这一点吗
控制器/d3js.py
:
import random
def histogram():
dataset = [(random.randint(1,6) + random.randint(1,6)) for i in range(100)]
return dict(dataset=dataset, title='D3.js Histogram')
view/d3js/histogram.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{=title}}</title>
<script type="text/javascript" src="https://d3js.org/d3.v3.min.js" ></script>
</head>
<body>
<script type="text/javascript">
{{from gluon.serializers import json}}
var dataset = {{=XML(json(dataset))}};
//Width and height
var w = 600;
var h = 600;
...
//Create SVG element
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
...
</script>
</body>
</html>
{{=title}}
{{from glion.serializers import json}
var数据集={{=XML(json(数据集))};
//宽度和高度
var w=600;
var h=600;
...
//创建SVG元素
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,w)
.attr(“高度”,h);
...
源代码是Scott Murray的书,位于/views/default/histogram.html中,如果您有:
{{extend 'layout.html'}}
[Your D3 HTML code]
这将导致一个问题,因为在插入{{extend}}
语句之后的所有内容都出现在layout.html中的{include}
标记中的{include}
中(因此,您在现有的
标记中包含了一个新的
标记)
相反,在histogram.html视图中,只包括
标记内的html部分。在这种情况下,您还需要确保D3库已加载,因此您可以将该
标记移动到正文中,也可以通过web2py的响应添加它。文件
:
response.files.append('https://d3js.org/d3.v3.min.js')
上面的代码有效吗?当我将这段d3.js代码放入引导布局时,该代码是什么样子的?