IDOM 0.7.0


Libraries for defining and controlling interactive webpages with Python 3.6 and above.

Try it Now!

  • In a Jupyter Notebook - launch-binder

  • With an online editor - IDOM Sandbox

Early Days

IDOM is still young. If you have ideas or find a bug, be sure to post an issue or create a pull request. Thanks in advance!

At a Glance

Let’s use IDOM to create a simple slideshow which changes whenever a user clicks an image:

import idom

async def Slideshow(self, index=0):

    async def next_image(event):
        self.update(index + 1)

    url = f"{index}"
    return idom.html.img({"src": url, "onChange": next_image})

server = idom.server.sanic.PerClientState(Slideshow)
server.daemon("localhost", 8765).join()

Running this will serve our slideshow to "https://localhost:8765/client/index.html"

You could even display the same thing in a Jupyter notebook!

idom.display("jupyter", "https://localhost:8765/stream")

Every click will then cause the image to change (it won’t here of course).