Skip to main content

Muffin-Jinja2 – Support Jinja2 templates for Muffin Framework

Tests Status PYPI Version

Requirements

  • python >= 3.9

Installation

Muffin-Jinja2 should be installed using pip:

pip install muffin-jinja2

Usage

import muffin
import muffin_jinja2

# Create Muffin Application
app = muffin.Application('example')

# Initialize the plugin
# As alternative: jinja2 = Jinja2(app, **options)
jinja2 = muffin_jinja2.Plugin()
jinja2.setup(app, template_folders=['src/templates'])

# Use it inside your handlers
@app.route('/')
async def index(request):
    context = {'var': 42}
    return await jinja2.render('index.html', **context)

Options

Name

Default value

Description

auto_reload

False

Auto reload changed templates

cache_size

50

Cache templates

extensions

None

Enable Jinja2 Extensions (None | list)

loader

FileSystemLoader

Template loader

encoding

utf-8

Default encoding for file loader

template_folders

['templates']

List of template folders

You are able to provide the options when you are initiliazing the plugin:

jinja2.init(app, template_folders=['src/templates'], auto_reload=True)

Or setup it inside Muffin.Application config using the jinja2_ prefix for example:

JINJA2_AUTO_RELOAD = True

JINJA2_TEMPLATE_FOLDERS = ['tmpls']

Muffin.Application configuration options are case insensitive

Tunning

# Register custom context processor
# could be a function/coroutine
@jinja2.add_context
def custom_context():
    return { 'VAR': 'VALUE' }

# Register a function into global context
@jinja2.add_global
def sum(a, b):
    return a + b

# Register a function with a different name
@jinja2.add_global('div')
def mod(a, b):
    return a // b

# Register a filter
@jinja2.add_filter
def test(value, a, b=None):
    return a if value else b

# Register a filter with a different name
@jinja2.add_filter('bool')
def boolean(value):
    return bool(value)

@app.route('/')
async def index(request):
    """ Check for user is admin. """
    local_context = {'key': 'value'}
    return await jinja2.render('index.html', **local_context)

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-jinja2/issues

Contributing

Development of Muffin-Jinja2 happens at: https://github.com/klen/muffin-jinja2

Contributors

  • klen (Kirill Klenov)

License

Licensed under a MIT license.

Metadata

Release files for muffin-jinja2 1.8.1

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

Source distribution (sdist)

Source distribution for muffin-jinja2 1.8.1
File Size Uploaded
muffin_jinja2-1.8.1.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for muffin-jinja2 1.8.1
File Interpreter ABI Platform
muffin_jinja2-1.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.3 kB

Release files / muffin_jinja2-1.8.1.tar.gz

Download URL muffin_jinja2-1.8.1.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
20dd5c7842aed4c796f061aacfd826fce0b07598a47e5e9ca1cca6c95d208083
BLAKE2b-256 checksum
How to use checksums
500346606703d026578df334106f72ea5cc32f4bc0244bfa150f783f1d9ea1fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1024-azure

Release files / muffin_jinja2-1.8.1-py3-none-any.whl

Download URL muffin_jinja2-1.8.1-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e2fab285c414c303af18527931f85051e95e6ad91006c1b4bb8a25cfccd5e99
BLAKE2b-256 checksum
How to use checksums
409636ae1f0ad5527f30856a8d177e29116ba1a214330e860b3cfd6c126f59da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1024-azure

Release history Release notifications | RSS feed

This release

1.8.1 This release

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.10.6

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.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