title: render_template --- type: method --- signature: name, pad=None, this=None, values=None, alt=None --- summary: Renders a template from the template folder. --- body: Whenever Lektor needs to render a template, it will use this exact method. Here are the parameters and what they mean: * `name`: this is the name of the template that should be rendered. It's the local filename relative to the `templates` folder and uses slashes for paths. * `pad`: when a [Pad :ref](../../db/pad/) is available, it should be provided so that the `site` variable can be populated. If a context is available then the pad will also be pulled from the context if needed. * `this`: the value of the `this` variable in templates. This should always be the closest renderable thing. Typically this is a [Record :ref](../../db/record/) or flow block or something similar. * `values`: optional additional variables can be provided as a dictionary here. * `alt`: this can override the default selected `alt`. If not provided it's discovered from `this` and it will default to `_primary` if no other information can be found. ## Example ```python from lektor.project import Project project = Project.discover() env = project.make_env(load_plugins=False) pad = env.new_pad() rv = env.render_template('hello.html', pad=pad, this={ 'title': 'Demo Object' }) ```