我曾尝试构建一个 Django Bokeh 应用程序的框架,但无法在单独的线程中选择 bokeh 服务器,因此使用 server_document 构建一个可以发送到 html 页面的脚本。
当我启动Django dev server并进入demo.html页面时,剧情不会出现。我怀疑 Bokeh 服务器可能没有正确启动。但在这里看不到任何解决方案。
demo.py(散景应用程序)
from bokeh.plotting import figure
from bokeh.layouts import column
from bokeh.server.server import Server
def modify_doc(doc):
x_values = [1, 2, 3, 4, 5]
y_values = [6, 7, 2, 4, 5]
# Create a figure object
fig = figure(title='Simple Bokeh Plot', x_axis_label='X-axis', y_axis_label='Y-axis')
# Add a line glyph to the figure
fig.line(x_values, y_values)
# add the plot and slider to a layout and add to the document
layout = column(fig)
doc.add_root(layout)
Bokeh_server = Server({'/': modify_doc})
view.py:
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from django.shortcuts import render
import threading
import asyncio
from bokeh.embed import server_document
from tavla.bokehapp.demo import Bokeh_server
def demo(request):
script = server_document('http://localhost:5006/')
return render(request, 'tavla/demo.html', {'script': script})
def start_bokeh_server():
Bokeh_server.start()
if __name__ == '__main__':
bokeh_thread = threading.Thread(target=start_bokeh_server)
bokeh_thread.start()
demo.html:
{% extends "blog/base.html" %}
{% block content %}
<html>
<head>
<link href=”http://cdn.pydata.org/bokeh/release/bokeh-2.3.2.min.css"
rel=”stylesheet” type=”text/css”>
<link href=”http://cdn.pydata.org/bokeh/release/bokeh-widgets-2.3.2.min.css"
rel=”stylesheet” type=”text/css”>
</head>
<body>
<h1 align="center">Demo datavisualisering</h1>
<div class="container overflow-hidden">
<div class="row gx-5">
<div class="col">
<div class="p-3 border bg-light">
Dette er en demo applikasjon
som viser hva som er mulig å
få til av datavisualisering
</div>
</div>
<div class="col">
<div class="p-3 border bg-light">
<h1 align="center">Datavisualisering</h1>
{{ script|safe }}
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4"
crossorigin="anonymous"></script>
</body>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-3.0.3.min.js"></script>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.0.3.min.js"></script>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.0.3.min.js"></script>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-api-3.0.3.min.js"></script>
</html>
{% endblock content %}