🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

django-string-renderer

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

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.

0.5.0
PyPI
Maintainers
1

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.10 and Django >= 4.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 commands:

python runtests.py
python -m mypy --ignore-missing-imports stringrenderer/

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.

Keywords

templating django

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts