Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Python Liquid

Python Liquid is a Python engine for the Liquid, the safe, customer-facing template language. We followShopify/Liquid closely and test against theGolden Liquid test suite.

Note

This is the documentation for the latest version of Python Liquid (GitHub). Find archived documentation for Python Liquid version 1.xhere.

Install

Install Python Liquid fromPyPi usingpip:

python -m pip install python-liquid

OrPipenv:

pipenv install -u python-liquid

Orpoetry

poetry add python-liquid

Or fromconda-forge:

conda install -c conda-forge python-liquid

Quick Start

render()

This example renders a template from a string of text with the package-levelrender() function. The template has just one placeholder variableyou, which we've given the value"World".

fromliquidimportrenderprint(render("Hello, {{ you }}!",you="World"))# Hello, 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 theparse() function.parse() returns aBoundTemplate instance with arender() method.

fromliquidimportparsetemplate=parse("Hello, {{ you }}!")print(template.render(you="World"))# Hello, World!print(template.render(you="Liquid"))# Hello, Liquid!

Configure

Bothparse() andrender() are convenience functions that use thedefault Liquid environment. For all but the simplest cases you'll want to configure an instance ofEnvironment, then load and render templates from that.

fromliquidimportCachingFileSystemLoaderfromliquidimportEnvironmentenv=Environment(autoescape=True,loader=CachingFileSystemLoader("./templates"),)

Then, usingenv.parse() orenv.get_template(), we can create aBoundTemplate from a string or read from the file system, respectively.

# ... continued from abovetemplate=env.parse("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 calledtemplates with a file calledindex.html within it, we would expect aTemplateNotFoundError to be raised when running the example above.

What's next?

Read more aboutconfiguring Liquid environments,template loaders andmanaging render context data.


[8]ページ先頭

©2009-2025 Movatter.jp