Skip to main content

Control the web with Python

Project description

Django-IDOM · Tests PyPI Version License Docs

Django-IDOM connects your Python project to a ReactJS front-end, allowing you to create interactive websites without needing JavaScript!

Following ReactJS styling, web elements are combined into reusable "components". These components can utilize hooks and events to create infinitely complex web pages.

When needed, IDOM can use components directly from NPM. For additional flexibility, components can also be fully developed in JavaScript.

Any Python web framework with Websockets can support IDOM. See below for what frameworks are supported out of the box.

Supported Frameworks Supported Frameworks (External)
Flask, FastAPI, Sanic, Tornado Django, Plotly-Dash, Jupyter

At a Glance

my_app/components.py

You will need a file to define your IDOM components. We recommend creating a components.py file within your chosen Django app to start out. Within this file, we will create a simple hello_world component.

from idom import component, html

@component
def hello_world(recipient: str):
    return html.h1(f"Hello {recipient}!")

my_app/templates/my-template.html

In your Django app's HTML template, you can now embed your IDOM component using the component template tag. Within this tag, you will need to type in your dotted path to the component function as the first argument.

Additionally, you can pass in args and kwargs into your component function. For example, after reading the code below, pay attention to how the function definition for hello_world (in the previous example) accepts a recipient argument.

{% load idom %}
<!DOCTYPE html>
<html>
  <body>
    {% component "example_project.my_app.components.hello_world" recipient="World" %}
  </body>
</html>

Resources

Follow the links below to find out more about this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_idom-3.0.0a3.tar.gz (74.4 kB view details)

Uploaded Source

Built Distribution

django_idom-3.0.0a3-py2.py3-none-any.whl (76.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django_idom-3.0.0a3.tar.gz.

File metadata

  • Download URL: django_idom-3.0.0a3.tar.gz
  • Upload date:
  • Size: 74.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for django_idom-3.0.0a3.tar.gz
Algorithm Hash digest
SHA256 8eed6a1ed62453bd2cecb9cdda173fa2451801a1dda140d9b2f704b7fb7970a6
MD5 09f81f5a2549259f20617bfcef8ced47
BLAKE2b-256 f2b6f07b3ac8d8113e93cc3d0561f9890cbf1affa0190834186f4381f26a3b27

See more details on using hashes here.

File details

Details for the file django_idom-3.0.0a3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_idom-3.0.0a3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3a77f69ac331142af42543898e0bf8933509dcb5a58a7210890fe7d2c9a98ae0
MD5 4b021ccd7ee0fe5f47b55ecd444192fb
BLAKE2b-256 91bb46a38ec6336d9671f1e90287ddd717191da8fa05b5e546c42e3bff6c03f6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page