2017-01-31 6 views
2

Я использую bokeh's component, чтобы получить script и div теги для встраивания графиков в html-отчет. Отчет построен с elementtree.Использование компонентов bokeh с elementtree

Вопрос заключается в том, что component возвращает script и div как строки, то есть я не могу удобно использовать SubElement, чтобы сделать соответствующие элементы. Эти строки работают нормально, если вы пишете непосредственно в файл, но я застрял с использованием etree для синтаксического анализа строки и определения свойств. Он чувствует себя неуклюжим.

Неужели кто-то еще сталкивается с этим? Было бы замечательно, если бы был способ, чтобы получить компонент вернуть два словаря, что-то вроде этого:

script = { 
    tag='script', 
    type='text/javascript', 
    data=#script contents here 
} 

id= { 
    tag='div', 
    class='bk-root', 
    id='6c76dbfe-52ec-4388-b408-a3142466196e' 
} 
+0

Главный вопрос: «Как получить идентификатор?» просто спрашивая, потому что остальное будет статическим кодом ... (кроме данных) – renzop

+0

@renzop Да, я полагаю, это всего лишь данные, которые мне нужны из сценария, и идентификатор, который мне нужен из div. –

ответ

2

Это всегда хорошая идея, чтобы проверить reference documentation, components уже имеет ключевое слово флаги аргументов для предоставления информации в качестве сырья а не HTML-теги:

wrap_script (boolean, optional) : 
    If True, the returned javascript is wrapped in a script tag. 
    (default: True) 

wrap_plot_info (boolean, optional) : If True, returns ``<div>`` strings. 
    Otherwise, return dicts that can be used to build your own divs. 
    (default: True) 

    If False, the returned dictionary contains the following information: 

    { 
     'modelid': 'The model ID, used with Document.get_model_by_id', 
     'elementid': 'The css identifier the BokehJS will look for to target the plot', 
     'docid': 'Used by Bokeh to find the doc embedded in the returned script', 
    }