Templates are an essential ingredient in full-stack web development. With Jinja, you can build rich templates that power the front end of your Python web applications.
But you don’t need to use a web framework to experience the capabilities of Jinja. When you want to create text files with programmatic content, Jinja can help you out.
In this tutorial, you’ll learn how to:
- Install the Jinja template engine
- Create your first Jinja template
- Render a Jinja template in Flask
- Use
for
loops and conditional statements with Jinja - Nest Jinja templates
- Modify variables in Jinja with filters
- Use macros to add functionality to your front end
You’ll start by using Jinja on its own to cover the basics of Jinja templating. Later you’ll build a basic Flask web project with two pages and a navigation bar to leverage the full potential of Jinja.
Throughout the tutorial, you’ll build an example app that showcases some of Jinja’s wide range of features. To see what it’ll do, skip ahead to the final section.
You can also find the full source code of the web project by clicking on the link below:
Source Code:Click here to download the source code that you’ll use to explore Jinja’s capabilities.
This tutorial is for you if you want to learn more about the Jinja template language or if you’re getting started with Flask.
Get Started With Jinja
Jinja is not only a city in the Eastern Region of Uganda and a Japanese temple, but also a template engine. You commonly use template engines for web templates that receive dynamic content from the back end and render it as a static page in the front end.
But you can use Jinja without a web framework running in the background. That’s exactly what you’ll do in this section. Specifically, you’ll install Jinja and build your first templates.
Install Jinja
Before exploring any new package, it’s a good idea to create and activate a virtual environment. That way, you’re installing any project dependencies in your project’s virtual environment instead of system-wide.
Select your operating system below and use your platform-specific command to set up a virtual environment:
With the above commands, you create and activate a virtual environment named venv
by using Python’s built-in venv
module.
The parentheses (()
) surrounding venv
in front of the prompt indicate that you’ve successfully activated the virtual environment.
After you’ve created and activated your virtual environment, it’s time to install Jinja with pip
:
(venv)$ python -m pip install Jinja2
Don’t forget the 2
at the end of the package name.
Otherwise, you’ll install an old version that isn’t compatible with Python 3.
It’s worth noting that although the current major version is actually greater than 2
, the package that you’ll install is nevertheless called Jinja2
.
You can verify that you’ve installed a modern version of Jinja by running pip list
:
(venv)$ python -m pip list
Package Version---------- -------Jinja2 3.x...
To make things even more confusing, after installing Jinja with an uppercase J
, you have to import it with a lowercase j
in Python.
Try it out by opening the interactive Python interpreter and running the following commands:
>>> importJinja2Traceback (most recent call last):...ModuleNotFoundError: No module named 'Jinja2'>>> importjinja2>>> # No error
Read the full article at https://realpython.com/primer-on-jinja-templating/ »
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]