IDOM 0.6.0

_images/idom-logo.png

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

@idom.element
async def Slideshow(self, index=0):

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

    url = f"https://picsum.photos/800/300?image={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"

https://picsum.photos/700/300?random

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).