Chapter 3. Extending Templates
In Chapter 2, we saw how the Tornado template system could be used to easily pass information from handlers to web pages, letting you keep your web markup clean while easily interpolating dynamic data. However, most sites will want to make use of repurposable content like headers, footers, and layout grids. In this chapter, we’ll take a look at how you can accomplish this by extending Tornado templates, or using UI modules.
Blocks and Substitutions
When you’ve taken the time to set up and lay out templates for your
web application, it only seems logical that you’d want to reuse your
frontend code as much as your backend Python, right? Fortunately, Tornado
lets you do just that. Tornado supports template inheritance through
extends
and block
statements, which give you the control and
flexibility to make fluid templates that can be repurposed as you see
fit.
To extend an existing template, you just need to put an {% extends "filename.html" %}
at the top of the
new template file. For example, to extend a parent template (main.html here) into a new template, you’d just
use:
{% extends "main.html" %}
This will let the new file inherit all the markup of main.html, and then overwrite content where desired. With this system, you can create master templates, switch in other subpages for special needs, and have both default and dynamic text and markup ready to go.
Basics of Blocks
Extending a template makes it easy to repurpose content you’ve previously written, but ...
Get Introduction to Tornado now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.