Skip to main content

Reusable application for Django introducing URL-dependent static and dynamic data blocks

Project description

http://github.com/idlesign/django-siteblocks

LBC Python 2
https://img.shields.io/pypi/v/django-siteblocks.svg https://img.shields.io/pypi/l/django-siteblocks.svg https://img.shields.io/coveralls/idlesign/django-siteblocks/master.svg https://img.shields.io/travis/idlesign/django-siteblocks/master.svg

What’s that

django-siteblocks is a reusable application for Django to build blocks of static or dynamic data that could be used in templates.

It allows you to describe data that doesn’t clearly belong to any application in your project in terms of static or dynamic blocks, that could be rendered in certain places on site pages. These blocks are addressed in templates by their aliases.

The following siteblock types are supported:

Static

Those are defined using Django Admin contrib and are linked to certain URLs.

This allows different siteblock contents on different URLs. Just go to admin and add some blocks.

Dynamic

Those are ordinary Python functions registered as siteblocks returning contents.

This allows complex logic to build siteblock contents. Let’s make a block with a random quote from Pratchett:

from random import choice

from siteblocks.siteblocksapp import register_dynamic_block


def get_quote(**kwargs):
    quotes = [
        'Early to rise, early to bed, makes a man healthy, wealthy and dead.',
        'The duke had a mind that ticked like a clock and, like a clock, it regularly went cuckoo.',
        'Speak softly and employ a huge man with a crowbar.',
    ]
    return choice(quotes)

register_dynamic_block('quote', get_quote)

Block rendering

Use siteblocks tag to render block contents where you need it.

{% load siteblocks %}

<div class="quote">
    {% siteblock "quote" %}
</div>

Project details


Download files

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

Files for django-siteblocks, version 1.2.0
Filename, size File type Python version Upload date Hashes
Filename, size django_siteblocks-1.2.0-py2.py3-none-any.whl (21.6 kB) File type Wheel Python version 3.6 Upload date Hashes View
Filename, size django-siteblocks-1.2.0.tar.gz (20.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page