Class TemplateLoader
object --+
|
TemplateLoader
Responsible for loading templates from files on the specified search
path.
>>> import tempfile
>>> fd, path = tempfile.mkstemp(suffix='.html', prefix='template')
>>> os.write(fd, '<p>$var</p>')
11
>>> os.close(fd)
The template loader accepts a list of directory paths that are then used
when searching for template files, in the given order:
>>> loader = TemplateLoader([os.path.dirname(path)])
The load() method first checks the template cache whether the requested
template has already been loaded. If not, it attempts to locate the
template file, and returns the corresponding Template object:
>>> from genshi.template import MarkupTemplate
>>> template = loader.load(os.path.basename(path))
>>> isinstance(template, MarkupTemplate)
True
Template instances are cached: requesting a template with the same name
results in the same instance being returned:
>>> loader.load(os.path.basename(path)) is template
True
>>> os.remove(path)
|
__init__(self,
search_path=None,
auto_reload=False,
default_encoding=None,
max_cache_size=25,
default_class=None,
variable_lookup=' lenient ' ,
callback=None)
Create the template laoder. |
|
|
|
load(self,
filename,
relative_to=None,
cls=None,
encoding=None)
Load the template with the given name. |
|
|
Inherited from object :
__delattr__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__str__
|
Inherited from object :
__class__
|
__init__(self,
search_path=None,
auto_reload=False,
default_encoding=None,
max_cache_size=25,
default_class=None,
variable_lookup=' lenient ' ,
callback=None)
(Constructor)
|
|
Create the template laoder.
- Parameters:
search_path - a list of absolute path names that should be
searched for template files, or a string containing
a single absolute path
auto_reload - whether to check the last modification time of
template files, and reload them if they have changed
default_encoding - the default encoding to assume when loading
templates; defaults to UTF-8
max_cache_size - the maximum number of templates to keep in the
cache
default_class - the default Template subclass to use when
instantiating templates
variable_lookup - the variable lookup mechanism; either "lenient"
(the default), "strict", or a custom lookup
class
callback - (optional) a callback function that is invoked after a
template was initialized by this loader; the function
is passed the template object as only argument. This
callback can be used for example to add any desired
filters to the template
- Overrides:
object.__init__
|
load(self,
filename,
relative_to=None,
cls=None,
encoding=None)
|
|
Load the template with the given name.
If the filename parameter is relative, this method searches the search
path trying to locate a template matching the given name. If the file
name is an absolute path, the search path is ignored.
If the requested template is not found, a TemplateNotFound exception
is raised. Otherwise, a Template object is returned that represents
the parsed template.
Template instances are cached to avoid having to parse the same
template file more than once. Thus, subsequent calls of this method
with the same template file name will return the same Template
object (unless the auto_reload option is enabled and the file was
changed since the last parse.)
If the relative_to parameter is provided, the filename is
interpreted as being relative to that path.
- Parameters:
filename - the relative path of the template file to load
relative_to - the filename of the template from which the new
template is being loaded, or None if the
template is being loaded directly
cls - the class of the template object to instantiate
encoding - the encoding of the template to load; defaults to the
default_encoding of the loader instance
- Returns:
- the loaded Template instance
- Raises:
|