Support Jinja2 templates for Muffin Framework
Project description
Muffin-Jinja2 – Support Jinja2 templates for Muffin Framework
Contents
Requirements
- python >= 3.8
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
Format: Name – Description (default value)
auto_reload – Auto reload changed templates (False)
cache_size – Cache templates (50)
extensions – Enable Jinja2 Extensions (None)
loader – Template loader (FileSystemLoader)
encoding – Default encoding for file loader (utf-8)
template_folders – List of template folders ([‘templates’])
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:
JINJA2_AUTO_RELOAD = True JINJA2_TEMPLATE_FOLDERS = ['tmpls']
Muffin.Application configuration options are case insensetive
Tunning
# Register custom context processor # could be a function/coroutine @jinja2.context_processor def custom_context(): return { 'VAR': 'VALUE' } # Register a function into global context @jinja2.register def sum(a, b): return a + b # Register a function with a different name @jinja2.register('div') def mod(a, b): return a // b # Register a filter @jinja2.filter def test(value, a, b=None): return a if value else b # Register a filter with a different name @jinja2.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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size muffin_jinja2-0.6.4-py3-none-any.whl (5.0 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size muffin-jinja2-0.6.4.tar.gz (5.5 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for muffin_jinja2-0.6.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1665e58b3de2c66836603e0441a3859b0fb6e36307cdf06426acceb4eb84dde |
|
MD5 | 5fe47856040481d1e585db1bc069ccde |
|
BLAKE2-256 | 8273047858342fd1667dc80e1c948431e9cf8e422ee6d222b13b4639f28031e9 |