Skip to main content

UTemplates - Python Templating Engine

UTemplates is a Python templating engine focused on HTML but with the potential to be extended to other languages. It facilitates the creation, manipulation, and rendering of HTML elements programmatically using Python classes and methods.

Table of Contents

Installation

  1. Clone the repository or download the source code.
pip install utemplates

Getting Started

Before you start using UTemplates, ensure you have a Python environment set up. UTemplates supports Python 3.7 and newer.

Usage

Configuration

To customize the behavior of UTemplates, you can modify or provide a utemplates_config.json configuration file. This file allows you to define conversion functions that will be applied to values before rendering them. The path to the configuration file can be set through an environment variable UTEMPLATES_CONFIG_PATH.

Config Format

The configuration file is a JSON file with the following structure:

{
  "conversions": [
    "module1.submodule.function1",
    "module2.submodule.function2"
  ]
}
  • Each string in the "conversions" list is a dot-path to a conversion function that should be imported and applied during rendering.

Creating Elements

UTemplates provides classes to structure HTML content. These can be generic or specific HTML elements:

  • GeneralBaseElement: Abstract base class for all HTML elements.
  • GroupedBaseElement: Class for grouping multiple elements.
  • BaseHTMLElement: Class for creating standard HTML elements.
  • SafeHTMLElement: Class for wrapping pre-processed HTML strings that should not be escaped.

You can create instances of these classes by calling their constructors and passing the appropriate arguments.

Example

from utemplates.html_specific.base import BaseHTMLElement

div_element = BaseHTMLElement("div", {"class": "container"}, "Hello World")

This example creates a <div> element with the class "container" and containing the text "Hello World".

Rendering HTML

To render HTML content, use the provided render method from the rendering module. It takes a string, a list of strings or elements, or a single element and generates an HTML string.

Example

from utemplates.rendering import render

# For a single element
rendered_html = render(div_element())

# For multiple elements
rendered_html = render([div_element(), another_element()])

# You can also save the rendered HTML to a file
from utemplates.rendering import save_to_file
save_to_file(rendered_html, 'output.html')

Utilities

The utils.py module includes utility functions:

  • convert_value: Applies configured conversion functions to a given value.

Integrations

UTemplates offers integration support for the Django framework to render responses directly:

Django Integration

from utemplates.integrations.django_integrations import render_to_response

def my_view(request):
    html_content = create_some_html_content()
    return render_to_response(html_content)

License

UTemplates is open-sourced under the MIT license.

Release files for utemplates 0.26

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for utemplates 0.26
File Size Uploaded
utemplates-0.26.tar.gz 37.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for utemplates 0.26
File Interpreter ABI Platform
utemplates-0.26-py3-none-any.whl Python 3 none any Details

Total release size: 89.5 kB

Release files / utemplates-0.26.tar.gz

Download URL utemplates-0.26.tar.gz
Size 37.5 kB
Tags Source
SHA-256 checksum
How to use checksums
56a9e4b5196a55a6c5d63f081435fb7f03cf6318ea8c186913d92834e3db0ec1
BLAKE2b-256 checksum
How to use checksums
7a191898d5e63bc164e70d4b6975c88d1cd9bfc9e2950c552a973ccec2f91574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / utemplates-0.26-py3-none-any.whl

Download URL utemplates-0.26-py3-none-any.whl
Size 52.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a2b6430d3bac7b6bb4625f83aa34b571445beb6f7c1da53e23ac00e2307d570
BLAKE2b-256 checksum
How to use checksums
931b5c93ca8a3eb06b77fdfc89b875963b330a957f57a7f4f335550bb68d21a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.26 This release

2 release files

0.25

2 release files

0.24

2 release files

0.23

2 release files

0.22

2 release files

0.21

2 release files

0.20

2 release files

0.19

2 release files

0.18

2 release files

0.17

2 release files

0.16

2 release files

0.15

2 release files

0.14

2 release files

0.13

2 release files

0.12

2 release files

0.11

2 release files

0.10

2 release files

0.9

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page