Skip to main content

Reusable application for Django bridging client and server sides

Project description

https://github.com/idlesign/django-siteajax

release lic coverage

Description

Reusable application for Django bridging client and server sides

Streamline your server and client interaction using declarative techniques in your HTML and helpful abstractions from siteajax in your Python code.

Usage

Somewhere in your views.py:

from django.shortcuts import redirect, render
from siteajax.toolbox import ajax_dispatch


def get_news(request):
    news = ...  # Here we fetch some news from DB.
    # We could access `request.ajax` object properties
    # or even drive client side with the help
    # of siteajax.toolbox.AjaxResponse but for this demo
    # simple rendering is enough.
    return render(request, 'sub_news.html', {'news': news})

@ajax_dispatch({
    # Map request source element id (see html below)
    # to a handler.
    'news-list': get_news,
})
def index_page(request):
    """Suppose this view is served at /"""
    return render(request, 'index.html')

Now to your index.html:

<!DOCTYPE html>
<html>
<head>
    <!-- Get client library js from CDN. -->
    {% include "siteajax/cdn.html" %}
</head>
<body>
    <div id="news-list" hx-get hx-trigger="load"></div>
    <!-- The contents of the above div will be replaced
        with the news from your server automatically fetched on page load.
        Notice `hx-*` attributes driving htmx JS library.
        Also notice how `id="news-list"` is used by `@ajax_dispatch`
        view decorator (shown above). -->
</body>
</html>

At last sub_news.html (nothing special):

{% for item in news %}<div>{{ item.title }}</div>{% endfor %}

Documentation

https://django-siteajax.readthedocs.org/

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-siteajax-1.0.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

django_siteajax-1.0.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file django-siteajax-1.0.0.tar.gz.

File metadata

  • Download URL: django-siteajax-1.0.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for django-siteajax-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d221e635c8c0cfd8508f7657b25a30f479eeb3a3a33daf646584815799d13ac9
MD5 32f4a999e99c2a93d34c2da18fe9c6ba
BLAKE2b-256 6bc55c5592da441913e4b7d5cfa2042e96b907ebddb879dbb8308ef526c2e418

See more details on using hashes here.

File details

Details for the file django_siteajax-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: django_siteajax-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for django_siteajax-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 828d9f5680d274c818768c43f3f90908499942c866e3a3887b301739afbc573c
MD5 0f290a4a4fc8f91ba11244c5b34dedf2
BLAKE2b-256 c799297938a0cc60b1d24f1c75196d440ac923774824c42eab97dc7cd28155d8

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