Nano Hash - криптовалюты, майнинг, программирование

Проблемы с 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:

введите здесь описание изображения

введите описание изображения здесь

введите описание изображения здесь

Я также установил jinja2.

Кто-нибудь знает причину этой ошибки сейчас?


Ответы:


1

Попробуй использовать

loader=jinja2.FileSystemLoader('templates')

вместо

loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))

Меня устраивает.

17.06.2012
  • Привет, @v0hkus, спасибо за ответ, но ошибка сохраняется: Файл C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\loaders.py, строка 180, в get_source поднять TemplateNotFound(template) TemplateNotFound : index.html INFO 2012-06-17 14:20:15,908 dev_appserver.py:2891] GET / HTTP/1.1 500 - Еще раз спасибо! 17.06.2012

  • 2

    Это решило это для меня:

    mkdir templates
    echo "hello world" > templates/index.html
    
    22.12.2015
  • По какой-то причине мне действительно пришлось удалить файлы, а затем повторно добавить их, чтобы Flask обнаружил, что файлы были там. Должно быть, изначально они были созданы неправильно 27.06.2016

  • 3

    Что ж, моя ошибка была проста и глупа. Я создал файл index.html неправильно (здесь правильно). Итак, мой файл «index.html» действительно был файлом «.text» (потому что я просто переименовал его в «index.html» вместо "сохранить как" index.html"). Спасибо за помощь, ребята!

    17.06.2012

    4

    Две мысли, основанные на том, как заставить мою первую работу GAE с Jinja2 работать. Во-первых, в вашем файле yaml у вас есть «-url: .», хотя я использовал «-url: /.» на основе руководств, которые я видел. Однако это может не иметь отношения к вашей проблеме. Во-вторых, я использовал руководство на этой странице для того, как установить свой модуль визуализации Jinja2, и у меня не было проблем с тем, что шаблон был найден в подкаталоге templates каталога приложения: http://webapp-improved.appspot.com

    14.06.2012

    5

    Я получил ту же ошибку и попробовал все ответы. Позже я узнал, что сначала нужно настроить среду с правильной папкой для поиска html-файла, и только тогда jinja2 сможет найти файл.

    Следующие строки уберут ошибку:

    env = Environment(loader=FileSystemLoader(searchpath='C:\Folder\of\html\file')
    template = env.get_template('Name_of_file.html')
    
    06.01.2019

    6
  • просто добавьте папку с названием templates и поместите туда index.html 21.04.2020
  • Хотя этот код может работать как решение, лучше добавить контекст и объяснить свой код. Это помогает будущим посетителям отточить то, на что важно обратить внимание в этом коде, и помогает другим учиться, чтобы они могли применить эти знания к своему собственному коду. Или уточните, как и почему этот код отличается от попыток ОП, и сравните, почему это решение работает. Это поддерживает высокое качество SO, не поощряет задавать мне вопросы по коду и поощряет обмен знаниями и информацией. Посетители с большей вероятностью обратят внимание и прочитают информативные сообщения. Высококачественные ответы с большей вероятностью получат одобрение 22.04.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..