☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Right way to plot live data with django and bokeh

Community Support
RedBeardCode
RedBeardCode

Hello,
i have a bokeh plot embedded in a django app. I create the plot in the django view and push the plot to the bokeh server to show the plot in my webpage.

#view.py
def view_plot(request):
    f=figure()
    f.plot(#some data#)
    session = push_session(curdoc())
    context = {'script': autoload_server(f, session_id=session.id)}
    return render_to_response('plot.html', context=context)

It all works quite good. Now I want to do a live plot, every time when a new DB-Entry is created the plot should be updated. I'm not sure what is the best way.

Is it a good practice to use a timer on the webpage to ask for now data?

Or is there a way to push the update form the server so that every currently connected client gets the plot update?

I would be very thankful for every hint.

Thanks a lot.

⌁   Link to post
birdsarah_continuum
birdsarah_continuum

Hi,

I would recommend checking out the happiness demo which does exactly that: https://github.com/bokeh/bokeh-demos/tree/master/happiness

Also check out the notebook where i document my learnings in making the app and how to update the data.

Basically you're going to need to keep track of your open sessions and put the new data in them, maybe using a django signal.

Best,

Sarah Bird
sbird@continuum.io

···

On Apr 26, 2016, at 5:35 AM, das.ist.kein.spam@gmail.com wrote:

Hello,
i have a bokeh plot embedded in a django app. I create the plot in the django view and push the plot to the bokeh server to show the plot in my webpage.

#view.py
def view_plot(request):
   f=figure()
   f.plot(#some data#)
   session = push_session(curdoc())
   context = {'script': autoload_server(f, session_id=session.id)}
   return render_to_response('plot.html', context=context)

It all works quite good. Now I want to do a live plot, every time when a new DB-Entry is created the plot should be updated. I'm not sure what is the best way.

Is it a good practice to use a timer on the webpage to ask for now data?

Or is there a way to push the update form the server so that every currently connected client gets the plot update?

I would be very thankful for every hint.

Thanks a lot.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/9dbfe7b2-a945-4767-bab4-f9da09c73e29%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Stefan_Farmbauer
Stefan_Farmbauer

Hello Sarah,

thank you for fast and perfect answer. It looks like it is exactly what I need. Thanks for that and for the great work of the bokeh team.

Best,

S. Farm

···

Sarah Bird sbird@continuum.io schrieb am Mi., 27. Apr. 2016 um 05:33 Uhr:

Hi,

I would recommend checking out the happiness demo which does exactly that: https://github.com/bokeh/bokeh-demos/tree/master/happiness

Also check out the notebook where i document my learnings in making the app and how to update the data.

Basically you’re going to need to keep track of your open sessions and put the new data in them, maybe using a django signal.

Best,

Sarah Bird

sbird@continuum.io

On Apr 26, 2016, at 5:35 AM, das.ist.kein.spam@gmail.com wrote:

Hello,

i have a bokeh plot embedded in a django app. I create the plot in the django view and push the plot to the bokeh server to show the plot in my webpage.

#view.py

def view_plot(request):

f=figure()

f.plot(#some data#)

session = push_session(curdoc())

context = {‘script’: autoload_server(f, session_id=session.id)}

return render_to_response(‘plot.html’, context=context)

It all works quite good. Now I want to do a live plot, every time when a new DB-Entry is created the plot should be updated. I’m not sure what is the best way.

Is it a good practice to use a timer on the webpage to ask for now data?

Or is there a way to push the update form the server so that every currently connected client gets the plot update?

I would be very thankful for every hint.

Thanks a lot.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/9dbfe7b2-a945-4767-bab4-f9da09c73e29%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0FAF5C8F-4A23-4F58-B560-B6EB5165CB75%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post
kevindesimone
kevindesimone

Hi,

Links to that demo have 404’d. Can someone point me in the right direction?

···

On Wednesday, April 27, 2016 at 12:33:47 AM UTC-3, Sarah Bird wrote:

Hi,

I would recommend checking out the happiness demo which does exactly that: https://github.com/bokeh/bokeh-demos/tree/master/happiness

Also check out the notebook where i document my learnings in making the app and how to update the data.

Basically you’re going to need to keep track of your open sessions and put the new data in them, maybe using a django signal.

Best,

Sarah Bird

sb...@continuum.io

On Apr 26, 2016, at 5:35 AM, das.ist....@gmail.com wrote:

Hello,

i have a bokeh plot embedded in a django app. I create the plot in the django view and push the plot to the bokeh server to show the plot in my webpage.

#view.py

def view_plot(request):

f=figure()

f.plot(#some data#)

session = push_session(curdoc())

context = {‘script’: autoload_server(f, session_id=session.id)}

return render_to_response(‘plot.html’, context=context)

It all works quite good. Now I want to do a live plot, every time when a new DB-Entry is created the plot should be updated. I’m not sure what is the best way.

Is it a good practice to use a timer on the webpage to ask for now data?

Or is there a way to push the update form the server so that every currently connected client gets the plot update?

I would be very thankful for every hint.

Thanks a lot.

–
You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+un...@continuum.io.

To post to this group, send email to bo...@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/9dbfe7b2-a945-4767-bab4-f9da09c73e29%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post
Bryan
Bryan

Hi,

That early demo lapsed into non-functionality and was overly complicated by trying to do some specialized and advanced things with custom session creation. Most of these cases can probably now be more easily handled with things like HTTP request args. So I'd suggest starting with the general information about embedding, since embedding in Django is not going to be materially different from embedding in Flask or any other web framework:

  http://bokeh.pydata.org/en/latest/docs/user_guide/embed.html

  Bokeh server — Bokeh 3.3.2 Documentation

That said, an explicit Django example would be a welcome addition to the examples or docs, in case you'd like to submit a contrition. None of the current core devs have any experience with Django.

Thanks,

Bryan

···

On Aug 5, 2017, at 21:18, kevindesimone@gmail.com wrote:

Hi,

Links to that demo have 404'd. Can someone point me in the right direction?

On Wednesday, April 27, 2016 at 12:33:47 AM UTC-3, Sarah Bird wrote:
Hi,

I would recommend checking out the happiness demo which does exactly that: https://github.com/bokeh/bokeh-demos/tree/master/happiness

Also check out the notebook where i document my learnings in making the app and how to update the data.

Basically you're going to need to keep track of your open sessions and put the new data in them, maybe using a django signal.

Best,

Sarah Bird
sb...@continuum.io

> On Apr 26, 2016, at 5:35 AM, das.ist....@gmail.com wrote:
>
> Hello,
> i have a bokeh plot embedded in a django app. I create the plot in the django view and push the plot to the bokeh server to show the plot in my webpage.
>
> #view.py
> def view_plot(request):
> f=figure()
> f.plot(#some data#)
> session = push_session(curdoc())
> context = {'script': autoload_server(f, session_id=session.id)}
> return render_to_response('plot.html', context=context)
>
>
> It all works quite good. Now I want to do a live plot, every time when a new DB-Entry is created the plot should be updated. I'm not sure what is the best way.
>
> Is it a good practice to use a timer on the webpage to ask for now data?
>
> Or is there a way to push the update form the server so that every currently connected client gets the plot update?
>
> I would be very thankful for every hint.
>
> Thanks a lot.
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+un...@continuum.io.
> To post to this group, send email to bo...@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/9dbfe7b2-a945-4767-bab4-f9da09c73e29%40continuum.io\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a4f1eaf6-ad5a-440f-8356-bce61bffcae2%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post

End of archived discussion · Replies are disabled