Flask-Genshi supports tests and filters from Jinja. Filters are exposed in the top-level namespace as-is, tests with is prepended to their name. Both are also accessible unchanged under the filters and tests namespaces.
<p class="${'even' if iseven(1) else 'odd'}">
${truncate('Hello World', 10)}
</p>
Same thing:
<p class="${'even' if tests.even(1) else 'odd'}">
${filters.truncate('Hello World', 10)}
</p>
Result:
<p class="odd">
Hello ...
</p>
Changed in version 0.6: Top-level access.
Flask can load templates specific to a flask.Module and Flask-Genshi also supports this. It works just like in Flask:
render_response('modname/template.html')
This will first look for, e.g. app/templates/modname/template.html, and if not found, e.g. app/mods/modname/templates/template.html. This lets you override module templates in your application.
New in version 0.4.
Context processors work as expected.
@app.context_processor
def add_site_name():
return dict(site_name=app.config['SITE_NAME'])
This lets you use site_name in templates without including it in every render call.
<title>$site_name</title>
New in version 0.4.
Like flask.render_template_string(), Flask-Genshi lets you render strings as templates:
render_response(string='Hello $name', context={'name': 'World'}, method='text')
The same pattern applies to all functions.
New in version 0.4.
Flask-Genshi supports a signal similar to flask.template_rendered called template_generated. It is sent the template object and the context that was used to generate the template stream, when one is successfully generated.
New in version 0.5.