Quick start
This page gets you started using Liquid with Python. See Liquid syntax for an introduction to writing Liquid templates.
Install
Install Python Liquid2 from PyPi using pip:
Or Pipenv:
Or Poetry:
render()
Here's a very simple example that renders a template from a string of text with the package-level render()
function. The template has just one placeholder variable you
, which we've given the value "World"
.
parse()
Often you'll want to render the same template several times with different variables. We can parse source text without immediately rendering it using the parse()
function. parse()
returns a Template
instance with a render()
method.
from liquid2 import parse
template = parse("Hello, {{ you }}!")
print(template.render(you="World")) # Hello, World!
print(template.render(you="Liquid")) # Hello, Liquid!
Configure
Both parse()
and render()
are convenience functions that use the default Liquid environment. For all but the simplest cases you'll want to configure an instance of Environment
, then load and render templates from that.
from liquid2 import CachingFileSystemLoader
from liquid2 import Environment
env = Environment(
auto_escape=True,
loader=CachingFileSystemLoader("./templates"),
)
Then, using env.from_string()
or env.get_template()
, we can create a Template
from a string or read from the file system, respectively.
# ... continued from above
template = env.from_string("Hello, {{ you }}!")
print(template.render(you="World")) # Hello, World!
# Try to load "./templates/index.html"
another_template = env.get_template("index.html")
data = {"some": {"thing": [1, 2, 3]}}
result = another_template.render(**data)
Unless you happen to have a relative folder called templates
with a file called index.html
within it, we would expect a TemplateNotFoundError
to be raised when running the example above.
What's next?
Read more about configuring Liquid environments, template loaders and managing render context data.