Google App Engine Jinja2 template extends base template from parent folder
google-app-engine, jinja2, python
Solution
more clearly:
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
The folder `templates` is now the template's root:
template = env.get_template('content.html') # /templates/content.html
self.response.write(template.render())
or using subfolders:
template = env.get_template('folder/content.html')
self.response.write(template.render())
in content.html:
{% extends "base.html" %} # /templates/base.html
{% extends "folder/base.html" %} # /templates/folder/base.html
Problem
I am using Google App Engine with Python/Jinja2 I have a few html content files, like content1.html, content2.html and content3.html. Each of them need to extend a base html file called base.html. Suppose these 4 files are in the some folder, then at the beginning of the content files, I just need to put {% extends "base.html" %}, and the html files render well. However, as my project grows, more and more pages have been created. I would like to organize the files by creating sub-folders. So now suppose in the root directory, I have the base.html and subfolder1. Inside subfolder1, I have content1.html. In my python: ``` JINJA_ENVIRONMENT = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.dirname(__file__))+"\\subfolder1")) template = JINJA_ENVIRONMENT.get_template("content1.html") template.render({}) ``` or ``` JINJA_ENVIRONMENT = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(os.path.dirname(__file__)))) template = JINJA_ENVIRONMENT.get_template("subfolder1\\content1.html") template.render({}) ``` But then in content1.html, ``` {% extends "????????" %} ``` what should put in the question marks to extend the base.html which is in the parent folder?