Проблемы с Jinja2: TemplateNotFound: index.html
Я пытаюсь создать свое первое приложение GAE с jinja2. После преодоления дюжины мелких ошибок, теперь я застрял в этом:
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
Здесь мой файл yaml:
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"
Здесь мой код:
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)
Вот мой .html-шаблон:
<!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>
Несмотря на сообщение об ошибке, у меня есть папка с названием "шаблоны" и внутри нее создается файл index.html:
![enter image description here]()
![enter image description here]()
![enter image description here]()
Я также установил jinja2.
Кто-нибудь знает о причине этой ошибки?
Ответы
Ответ 1
Ну, моя ошибка была простой и глупой.
Я неправильно создал файл "index.html" (здесь). Итак, мой файл index.html действительно был файлом ".text" (потому что я просто переименовал его в "index.html" вместо "save as" index.html ").
Спасибо за помощь, ребята!
Ответ 2
Попробуйте использовать
loader=jinja2.FileSystemLoader('templates')
вместо
loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))
Это работает для меня.
Ответ 3
Это решило это для меня:
mkdir templates
echo "hello world" > templates/index.html
Ответ 4
Две мысли, основанные на моем первом усилии GAE с Jinja2, чтобы работать. Во-первых, в вашем файле yaml у вас есть "-url:." хотя я использовал "-url:/". на основе учебников, которые я видел. Однако это может не иметь отношения к вашей проблеме. Во-вторых, я использовал руководство на этой странице для того, как я создал свой рендеринг Jinja2 и не имел проблем с тем, что шаблон найден в подкаталоге templates каталога приложений: http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html#module-webapp2_extras.jinja2