TemplateNotFound: index.html with Google App Engine & Jinja2
google-app-engine, jinja2, python, templates
Solution
You should probably be using the `jinja2` version that's included in `webapp2_extras`.
The example of getting this set up is here: http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html#webapp2_extras.jinja2.Jinja2
The key difference is that instead of setting up the `jinja2.Environment` yourself, you do...
from webapp2_extras import jinja2
jinja = jinja2.get_jinja2(app=self.app)
jinja.render_template("index.html")
You will also likely need to include `jinja2` in your `libraries` section of `app.yaml`:
libraries:
- name: jinja2
version: "2.6"
Problem
I'm trying to build my first GAE app with jinja2. After overcoming a dozen small errors, now I'm stuck with this: Traceback (most recent call last): ``` File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1536, in __call__ rv = self.handle_exception(request, response, e) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1530, in __call__ rv = self.router.dispatch(request, response) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1278, in default_dispatcher return route.handler_adapter(request, response) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1102, in __call__ return handler.dispatch() File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 572, in dispatch return self.handle_exception(e, self.app.debug) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 570, in dispatch return method(*args, **kwargs) File "C:\Users\CG\Documents\udacity\HiMon\main.py", line 31, in get template = jinja_environment.get_template('index.html') File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\environment.py", line 719, in get_template return self._load_template(name, self.make_globals(globals)) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\environment.py", line 693, in _load_template template = self.loader.load(self, name, globals) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\loaders.py", line 115, in load source, filename, uptodate = self.get_source(environment, name) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\loaders.py", line 180, in get_source raise TemplateNotFound(template) TemplateNotFound: index.html ``` Here my yaml file: ``` application: himother version: 1 runtime: python27 api_version: 1 threadsafe: yes handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: .* script: main.app libraries: - name: webapp2 version: "2.5.1" - name: jinja2 version: "2.6" ``` Here my code: ``` import os import webapp2 import jinja2 jinja_environment = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))) class MainPage(webapp2.RequestHandler): def get(self): template_values = { 'name': 'Serendipo', 'verb': 'extremely happy' } template = jinja_environment.get_template('index.html') self.response.out.write(template.render(template_values)) app = webapp2.WSGIApplication([('/', MainPage)], debug=True) ``` Here my .html template: ``` <!DOCTYPE html> <html> <head> <title>Look Ma, I'm using Jinja!</title> </head> <body> Hi there - I'm {{ name }}, and I {{ verb }} programming! </body> </html> ``` Despite the error message, I have a folder called "templates" and, within it, created the index.html file: I also have installed jinja2. Does anyone have any idea of the cause of this error now?