Исправлен javascript ID с использованием autoload_scripts из боке - PullRequest
0 голосов
/ 17 мая 2018

Цель:

Ежедневно обновляйте графики и сохраняйте их как функции java-скрипта, используя autoload_scripts от Bokeh. Есть HTML-страница, которая показывает графики. Не нужно менять HTML-код каждый день.

Проблема:

Следуя приведенному здесь примеру (https://bokeh.pydata.org/en/latest/docs/user_guide/embed.html#autoload-scripts) Я могу видеть график на своей веб-странице. Но каждый раз, когда я вызываю autoload_scripts (), он генерирует новый идентификатор, который я должен обновить в html-файле, чтобы он мог загрузите новый Java-скрипт.

Вопрос:

Есть ли способ иметь фиксированный идентификатор? Или есть лучший способ решить эту проблему?

Заранее спасибо, новичок в Bokeh и javascript, поэтому прошу прощения, если вы не используете правильный инструмент здесь.

1 Ответ

0 голосов
/ 17 мая 2018

Первоначальная мотивация autoload_static заключалась в том, чтобы иметь функцию, которую можно использовать при создании динамических веб-страниц, например конечная точка колбы. Возможность иметь фиксированный идентификатор кажется разумным вариантом использования, просто он нам никогда не приходил в голову, поэтому он не реализован. Я рекомендую вам подать запрос функции GitHub , чтобы добавить поддержку фиксированных идентификаторов.

В то же время лучшее предложение, которое я могу предложить, - это скопировать код из autoload_static и добавить строку, которая устанавливает render_items[0]['elementid'] для использования идентификатора по вашему выбору. Это не большая функция, она находится здесь:

https://github.com/bokeh/bokeh/blob/master/bokeh/embed/standalone.py#L50-L100

Новый раздел кода будет выглядеть примерно так:

with _ModelInDocument([model]):
        (docs_json, render_items) = standalone_docs_json_and_render_items([model])

    render_items[0]['elementid'] = "MY FIXED ID"
    bundle = bundle_all_models()
...