Embedded Bokeh DataTable在Django中未显示

问题描述 投票:0回答:1

我已经开发了一个Django Web应用程序,其中显示了由Bokeh生成的交互式地图,并使用“组件”(来自bokeh.embed)以脚本/ div的形式发送到模板。除DataTable之外,所有项目(图,滑块,标题)均正确显示,我可以在独立文档或Jupyter中显示,但不能与“ components”一起显示。

我已经阅读了Bokeh DataTable not show in FlaskEmbedding bokeh plot and datatable in flask和其他线程,它们帮助我修复了JS / CSS链接,但对我的问题没有帮助。

在读取https://github.com/bokeh/bokeh/issues/4507之后,我试图将DataTable封装在不同的模块(如Panel,WidgetBox等)中,但没有成功。为简单起见,我使用了没有链接到我的数据的示例数据来在单独的Django视图中生成表,并创建了单独的模板。

我现在已经没有想法了。我知道Bokeh中的小部件存在渲染问题,所以我猜我的问题可能与这些问题有关,但更多的原因是我缺乏知识。代码如下。

[DJANGO VIEW

def datatable_test(request):

data = dict(
    dates=[date(2014, 3, i + 1) for i in range(10)],
    downloads=[randint(0, 100) for i in range(10)],
)
source = ColumnDataSource(data)

columns = [
    TableColumn(field="dates", title="Date", formatter=DateFormatter()),
    TableColumn(field="downloads", title="Downloads"),
]

data_table_mth = DataTable(source=source, columns=columns, width=400, height=280)

layout = column(
    Spacer(width=100),
    WidgetBox(data_table_mth),
    )

script_table, div_table = components(layout)
output_file("DATATABLE TEST.html")
show(layout)

return render(request, 'integrated/datatable_test.html', {'script_table': script_table,'div_table': div_table})

[DJANGO模板

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>{% block title %}{% endblock %}</title>

  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-1.4.0.min.css" rel="stylesheet" type="text/css">
  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-1.4.0.min.css" rel="stylesheet" type="text/css">
  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-tables-1.4.0.min.css" rel="stylesheet" type="text/css">


  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-1.4.0.min.js"></script>
  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-1.4.0.min.js"></script>
  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-1.4.0.min.js"></script>

  {{ script_table | safe }}

</head>

<body>
    <section class="content">
    <div class="row">
        <div class="col-md-12">
          <div class="box box-success">
            <div class="box-body">
                {{ div_table | safe }}
            </div>
          </div>
        </div>
      </div>
    </section>
</body>

作为嵌入式表的输出为空白:output as embedded table

作为独立html输出:output as standalone

python django datatable bokeh
1个回答
0
投票

按照bigreddot的建议,我打开浏览器控制台,将DataTable嵌入其原始视图/模板时显示以下错误消息:

browser console

© www.soinside.com 2019 - 2024. All rights reserved.