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
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
Built Distribution
File details
Details for the file django-string-renderer-0.4.0.tar.gz
.
File metadata
- Download URL: django-string-renderer-0.4.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6246e20633c04d004afce1dc813065b753ff2ced4362f2ae7dae69a1cefbd56b |
|
MD5 | cf7d12c255df0c35e5e095685ca3659c |
|
BLAKE2b-256 | 99856d5da33c9900ff6243c7554f709e779efb4e9928ffc9568447dd354c0325 |
File details
Details for the file django_string_renderer-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: django_string_renderer-0.4.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 399e5af0ca160b7657aa6d88d2269c9cb78468549d9f5c8d1b86aad2aaf2a168 |
|
MD5 | eca58b4f65eda441949a2278676697d9 |
|
BLAKE2b-256 | 521bcfefe50a680d6fa9c95a1f87621082c304766e221d4403dc1448553939c0 |