Twitter bootstrap 在web2py引导页面中嵌入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

下面是我如何将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 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代码放入引导布局时,该代码是什么样子的?