===================================================================
These are bindings for the `Mako templating system
<http://www.makotemplates.org/>`_ for the `repoze.bfg
<http://bfg.repoze.org/`_ web framework.
High-Level API
--------------
The API follows the pattern of the "default" template API for
``repoze.bfg``, which includes three functions: ``get_template``,
``render_template``, and ``render_template_to_response``. From within
a repoze.bfg view function, you might do::
from webob import Response
from repoze.bfg.renderers import get_renderer
template = get_renderer('templates/foo.mak')
return Response(template.render_unicode(foo=1))
Or::
from repoze.bfg.renderers import render
s = render('templates/foo.mak', {foo:1})
return Response(s)
Or::
from repoze.bfg.renderers import render_to_response
return render_to_response('templates/foo.mak', {foo:1})
All of these examples are equivalent. The first argument passed in to
each of them (representing the template location) should be a file
path relative to the lookup loader root.
The value passed to ``render`` or ``render_to_response`` should be one
of the following:
- A *dictionary* representing the values passed to the template.
- A *tuple*, consisting of two values in the form ``(function_name,
values)``. If a tuple is returned, the ``def`` named after
``function_name`` in the template is rendered instead of the entire
template using the ``values`` provided, which must be a dictionary).
Positional arguments to the function defined within the template are
filled in by name using the same-named values within the ``values``
dictionary.
Configuring the Loookup Loader
------------------------------
In your bfg application's ``.ini`` file, use a ``mako.directories``
setting::
[app:main]
use = egg:mypackage
mako.directories = mypackage:templates
anotherpackage:templates
reload_templates = true
debug_authorization = false
debug_notfound = false
``mako.directories`` should be a sequence of absolute directory names
or resource specifications, one per line.
Other values:
``mako.input_encoding``
Set the mako template input encoding. The default is ``utf-8``.
``reload_templates``
If this is ``True``, Mako templates will be checked for changes at
every rendering boundary. This slows down rendering but is
convenient for development.
Ensuring the Mako Renderer Extension is Active
----------------------------------------------
``repoze.bfg.mako`` can also act as a "renderer" for a view when it is
active in the ``repoze.bfg`` application you're developing::
@bfg_view(renderer='templates/foo.mak')
def aview(request):
return {'foo':1}
There are two ways to make sure that the mako extension is active.
Both are completely equivalent.
#) Ensure that some ZCML file with an analogue of the following
contents is executed::
<include package="repoze.bfg.mako"/>
#) Call the ``add_renderer`` method of a Configurator in your
application:
from repoze.bfg.mako import renderer_factory
config.add_renderer(.'mak', renderer_factory)
config.add_renderer(.'mako', renderer_factory)
In either case, files with the ``.mak`` and ``.mako`` extensions are
now considered to be Mako templates.
Note that when mako is used as a ``renderer`` in this fashion, the
``repoze.bfg`` context that is usually available as ``context`` within
the template global namespace is available as ``_context`` (the
``context`` name without the underscore is reserved for internal Mako
usage).
Installation
------------
Install using setuptools, e.g. (within a virtualenv)::
$ easy_install -i http://dist.repoze.org/bfg/dev/simple repoze.bfg.mako
Creating a Mako ``repoze.bfg`` Project
--------------------------------------
After you've got ``repoze.bfg.mako`` installed, you can invoke the
following command to create a Mako-based ``repoze.bfg`` project::
$ paster create -t bin/paster create -t bfg_mako_starter
Reporting Bugs / Development Versions
-------------------------------------
Visit http://bugs.repoze.org to report bugs. Visit
http://svn.repoze.org to download development or tagged versions.
0.3 (2010-09-19)
----------------
- A ``repoze.bfg.mako`` renderer may now be called with a *tuple*,
consisting of two values in the form ``(function_name, values)``.
If a tuple is provided to a renderer, the ``def`` named after
``function_name`` in the template is rendered instead of the entire
template using the ``values`` provided, which must be a dictionary).
0.2 (2010-09-06)
----------------
- Removed ``repoze.bfg.mako`` functions named ``render_template``,
``render_template_to_response``, ``get_template`` and
``get_renderer``. As of ``repoze.bfg`` 1.3a6, use of these
functions should be replaced with usage of similarly-named functions
present in the ``repoze.bfg.renderers`` module .
- Added integration tests for imperative rendering and ZCML loading.
0.1 (2010-07-24)
----------------
- Initial release.
Metadata
Release files for repoze.bfg.mako 0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| repoze.bfg.mako-0.3.tar.gz | 25.3 kB | Without provenance | Details |
Release files / repoze.bfg.mako-0.3.tar.gz
| Download URL | repoze.bfg.mako-0.3.tar.gz |
|---|---|
| Size | 25.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
197cd93939a494aa4b5a6c390f652209e334315e97c7b69daa77facce338fb8a
|
|
BLAKE2b-256 checksum How to use checksums |
56b05a5343b1ce67e3b7da9b4caa0508bbcb286e6a08803888f334a9567bc4e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for repoze.bfg.mako 0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.