Мой шаблон Jinja2 должен автоматизировать структуру HTML с моей индексной страницы. При запуске и просмотре программы ничего не отображается в браузере. Это DID работает, когда я использовал одну переменную, но что-то не так, когда я гнездовал несколько. Вот код:Почему мой шаблон Jinja2 не работает?
class MainPage(Handler):
def get(self):
stage = [name, lessons]
name = 'Stage 1'
lessons = [
['Lesson 1 Important Concepts',[
['HTML', 'HTML is the ...'],
['Tags and Elements', 'This is an e...'],
['Why Computers Are Stupid', 'Computers ne...'],
['Inline and Block Elements', 'Block elem...']
]
]
['Lesson 2: Creating a Structured Document with HTML',[
['Developer Tools','Everything design...'],
['HTML is Structured Like a Family Tree','HTML..'],
['Text Editors','HTML is writt....'],
]
]
['Lesson 3: Adding Style to HTML Using CSS',[
['Avoiding Repetition','If programm...'],
['CSS','CSS, or cascading style sh....'],
]
]
]
self.render("index.html", name=name, lessons=lessons)
Вот шаблон:
<h1> {{name}} Important Concepts</h1>
{% for lessons in stage %}
<div class=“lesson”>
<h2>{{ lessons[0] }}</h2>
<div class="concept”>
<div class="concept-title">
{{ lessons[0][0] }}
</div>
<div class="concept-description">
{{ lessons[0][1] }}
</div>
</div>
</div>
{% endfor %}
Мой проект GitHub здесь: https://github.com/graceehayden/Stage4Udacity-Session-2
Ошибки я получаю:
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1102, in __call__
return handler.dispatch()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "/Users/gracehayden/Desktop/Udacity/Stage4Project/main.py", line 22, in get
stage = [name, lessons]
UnboundLocalError: local variable 'name' referenced before assignment
Dont вы получить синтаксическую ошибку? И я не вижу никакой переменной stage1, которую вы передаете jinja. – ozy
У меня есть ошибка, но я этого не понимаю. Тем не менее, этап 1 - это хороший момент! Вы бы подумали, что это будет очевидно, но я такой медленный ученик, что, наверное, меня переполняют и не могут видеть эти детали! Следовательно, мое обращение. – ghayden
также, вместо использования списка списков, вы должны подумать о том, чтобы использовать словарь или несколько из них, чтобы избавиться от этих смешных индексов '[i]' и '[i] [j]'. Это сделает ваш код более читаемым. – Oz123