# Jinja2 Mastery: Level 1

In this section we'll get started with Jinja2, a library developed by the author of Flask. Knowing how it works well will give us great flexibility when it comes to writing our HTML templates.

Throughout the section you'll learn about:

  • Defining variables inside a template to reduce duplicated calculations.
  • How to use filters.
  • How to extract parts of your HTML into "functions", called macros in Jinja.
  • Applying inheritance to your templates so they are easier to read and to reduce duplication.
  • How to work with CSS in both small and large projects.
  • How to write tests so you can use the is keyword inside Jinja2.
  • All about the rendering context and what values Jinja has access to while rendering.
  • How routing works in Flask and how you can link between pages without having to hard-code the endpoints in every link.

It sounds like a lot, but each lecture is short and to the point, so I'm sure you won't have any issues!