I'm using Jinja2 in situations where I'm either just generating a report to email out (most cases) or in a non-Flask web environment (twisted if it matters). Some of my templates are getting a little complicated and I'm starting to refactor them out to move blocks of code into separate files. But I'm having problems with inheritance. I've boiled it down to as simple a test as I can.
Main template, 'index-template.html':
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="420" >
<title>jTest</title>
</head>
<body>
{% block testing %}This is a test.{% endblock %}
</body>
</html>
Here is the child template that contains the 'testing' block to replace the parent's block.
{% extends 'index-template.html' %}
{% block testing %}
This is not a test.
{% endblock %}
And here is the code that uses it:
from jinja2 import FileSystemLoader, Environment
jLoader = FileSystemLoader("templates")
jEnv = Environment(loader=jLoader)
indexTemplate = jEnv.get_template('index-template.html')
jContent = indexTemplate.render()
with open("index.html", "w") as fp:
fp.write(jContent)
index.html ends up like this:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="420" >
<title>jTest</title>
</head>
<body>
This is a test.
</body>
</html>
Was expecting "this is not a test"
I feel like I'm missing something very fundamental here. Any pointers?
TIA,
Jeff