What am I trying to do?
I am running a Bokeh server and embedding it currently with
server_document() in a flask environment of an external webpage. My Bokeh document contains two parts, let’s say a slider and a figure; I gave both a name and added them to the bokeh document with
Now I would like to put each of these roots into a separate
div when embedding, to allow the use of flexboxes to achieve a responsive design. Previously, I used
Row() of Bokeh Layout, but
Column() looks bad on a landscape screen and
Row() looks bad on a mobile device.
What have I tried that did not work as expected?
In the reference documentation (section bokeh.embed) I found that if I use
server_document(), I can pass a model name to get individual document roots instead of the entire document. However, this does not work. I found this open github issue (https://github.com/bokeh/bokeh/issues/8499) that seems to be related but hasn’t seen any activity besides “is there a fix?” for about a year. After looking a bit into the source code (I am no expert by any means), it seems like the problem is the autoload_request_tag.html (https://docs.bokeh.org/en/latest/docs/reference/core/templates.html), which does not make use of the
modelid that it receives.
Is there any update on this or a suggestion to achieve my goal in another way? I am restricted to using Bokeh Server (I need Python callbacks), so embedding with
components() is not an option; and because I don’t want Bokeh to serve all the content, I believe also the default Jinja2/directory template method does not work for me. I also cannot use multiple documents, because I want the two models to interact with each other, just like the Bokeh sliders example. I appreciate any advice!