Skip to main content

A Django template engine to render untrusted template code

Project description

GitHub Actions build status

Django Safe Template Engine

Django template engine to render untrusted template code

Table of contents

Requirements

  • Python 3.8 to 3.12
  • Django 3.2 (officially supported in automated tests, all built-in template tags and filters reviewed)

Available tools

Template engine

from django.template import Template
from django_safe_template_engine.engine import SafeTemplateEngine

safe_engine = SafeTemplateEngine()
Template(source, engine=safe_engine)

Validator

from django_safe_template_engine.validators import validate_safe_engine_template_syntax

template_code = '{% include "hacked.html" %}'
validate_safe_engine_template_syntax(template_code)

Trusted built-ins

The following tags and filters are allowed by this template engine.

Trusted tags

Trusted filters

Contribute

How to contribute

You want to add awesome features to Django Safe Template Engine? Here's how!

  1. Fork this repository
  2. Commit and push to your forked repository
  3. Open a pull request to merge your work into this repository

Code formatting and tests

Here is how to run the code formatting / type checking tools, and run the test suite.

  1. [Recommended] Create a Python venv for this repository:

    python3 -m venv .venv
    source .venv/bin/activate
    
  2. Install the dependencies:

    cd tests/ && pip install -r requirements.txt && cd ..
    
  3. Run the code formatting tools:

    black code formatter:

    black src tests
    

    isort import sorter:

    isort --settings-path isort.cfg src tests
    

    flake8 coding style checker:

    flake8 --config .flake8 src tests
    

    mypy type checker:

    mypy --config-file mypy.ini src tests
    
  4. Run the test suite:

    python run_tests.py
    

Ignore code formatting revisions from git blame

For a more relevant git blame you can set up your git to use the file .git-blame-ignore-revs in blame.ignoreRevsFile:

git config blame.ignoreRevsFile .git-blame-ignore-revs

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_safe_template_engine-1.2.0.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distribution

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