Skip to main content

A thin wrapper around the Django templating system to render any string as a template. It provides an easy way to render any user inputted string as a regular django template.

Project description

Latest PyPI version Build Status

django-string-renderer

A thin wrapper around the Django templating system to render any string as a template. It provides an easy way to render any user inputted string as a regular django template.

Requirements

This wrapper uses no models and requires no other settings than a django engine in the TEMPLATES setting where the app is used.

This package uses type annotations and mypy to check those annotations.

This package is only tested against Python >= 3.6 and Django >= 3.2.

Installation

Binary Package from PyPi

In order to use this app in a Django project, the simplest way is to install it from PyPi:

pip install django-string-renderer

From the Source Code

In order to modify or test this app you may want to install it from the source code.

Clone the GitHub repository and then run:

pip install -r requirements.txt -r requirements-dev.txt

Usage

Start by adding stringrenderer to your INSTALLED_APPS setting like this:

INSTALLED_APPS = (
    ...,
    'stringrenderer',
)

Then use the StringTemplateRenderer class to build a Django template instance from a string et render the string with the context of your choice:

import stringrenderer

template_string = "Hello {{ recipient.first_name }} {{ recipient.last_name }}!"
renderer = StringTemplateRenderer(template_string)

rendered_content = renderer.render_template(context=dict(recipient=recipient_1), request=request)
rendered_content = renderer.render_template(context=dict(recipient=recipient_2), request=None)

When the first rendering request occurs on a given StringTemplateRenderer instance, a Template object is built from the string passed to __init__(), and cached for the next rendering operations with other contexts.

You may check the template syntax of a string like this:

import stringrenderer

template_string = "Hello {{ recipient.first_name }} {{ recipient.last_name }}!"
is_valid, syntax_error = check_template_syntax(template_string)

Testing

Get the source code from GitHub, follow the installation instructions above, and run the following command:

python runtests.py

This will run the test suite with the locally installed version of Python and Django.

Projects Using this App

This app is used in the following projects:

  • MyGym Web: a web platform for managing sports clubs. django-string-renderer is used to render the messages and emails addressed to the members.

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-string-renderer-0.4.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

django_string_renderer-0.4.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file django-string-renderer-0.4.0.tar.gz.

File metadata

File hashes

Hashes for django-string-renderer-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6246e20633c04d004afce1dc813065b753ff2ced4362f2ae7dae69a1cefbd56b
MD5 cf7d12c255df0c35e5e095685ca3659c
BLAKE2b-256 99856d5da33c9900ff6243c7554f709e779efb4e9928ffc9568447dd354c0325

See more details on using hashes here.

File details

Details for the file django_string_renderer-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_string_renderer-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 399e5af0ca160b7657aa6d88d2269c9cb78468549d9f5c8d1b86aad2aaf2a168
MD5 eca58b4f65eda441949a2278676697d9
BLAKE2b-256 521bcfefe50a680d6fa9c95a1f87621082c304766e221d4403dc1448553939c0

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