Вставить сервер Bokeh с несколькими корнями в Django - PullRequest
0 голосов
/ 17 октября 2018

У меня есть приложение боке с несколькими корнями.Внутри шаблона боке я использую

{{embed(roots.plot1)}}
{{embed(roots.plot2)}}
# etc

для загрузки графиков.Это отлично работает.Теперь я хотел бы загрузить графики внутри веб-страницы, которую я буду обслуживать, из приложения Django.Поскольку мои графики создаются с использованием Holoviews, сервер Bokeh необходим.

В документации bokeh https://github.com/bokeh/bokeh/tree/master/examples есть примеры того, как автоматически загружать все графики с сервера Bokeh, а также примеры того, каквнедрить несколько статических графиков, используя components(), но ни один из них, по-видимому, не охватывает этот вариант использования.

Вот что я пробовал:

# The following function is a function-based Django view
def django_view(request):

    bokeh_url = 'http://localhost:5006/experiment'
    roots = {root.name: root for root in session.document.roots}

    with pull_session(url=bokeh_url) as session:

        # I was hoping that these will generate separate autoload scripts for each model.
        # Unfortunately they each embed all the models.
        script1 = server_session(session_id=session.id, url=bokeh_url, model=roots['plot1'])
        script2 = server_session(session_id=session.id, url=bokeh_url, model=roots['plot2'])

    return render(request, "template.html", {"script1": script1, "script2: script2})

Выдержка из template.html:

{{ script1 | safe }}
{{ script2 | safe }}

В результате каждый тег сценария загружает все графики поверх друг друга.Как я могу вставить каждый график ровно один раз, где я хочу?Как я должен это делать?

...