Форум сайта python.su
День добрый.
Не могу разобраться с логикой Flask.
У меня есть базовый шаблон страницы. Внутри него меняются только блоки с содержимым (в зависимости от Юзера, сомой страницы и т.п.). Как я понял из офф доков, я могу расширять свой базовый шаблон при помощи форм. Есть даже пример с формой авторизации. Мало того, что он у меня не запускается, т.к. Flask ругается на код, так и по аналогии ничего не выходит.
Берем базовый шаблон - это страница index.html Плюс создаем файл, в котором храним код, расширяющий наш базовый шаблон - допустим banner_index.html.
Подготавливаем banner_index.html.
{% extends "index.html" %} {% block body %} <div id="banner-wrapper"> <div class="container"> <div class="row"> <div class="12u"> <div id="banner"> <h2>Put something cool here!</h2> <span>And put something almost as cool here, but a bit longer ...</span> </div> </div> </div> </div> </div> {% endblock %}
</div> </div> </div> {% block body %}{% endblock %} <div id="main"> <div class="container"> <div class="row main-row"> <div class="4u">
Офлайн
Офлайн
defond
наследования шаблона не для этого.
Надо просто в index.html вставить
{% include 'banner_index.html' %}
Отредактировано Singularitty (Март 25, 2014 17:07:35)
Офлайн
SingularittyСпасибо.
{% include ‘banner_index.html’ %}
Офлайн
Flask тут вообще не причем. Читайте доки к jinja2 подход одинаковый что фласком что пирамид что с джанго что с fabric whateveryouwant. И Инклуд в данном случае никак не заменяет наследование шаблона. Инкуд используется для выноса одинакового куска кода в отдельный файл, наследование для перекрытия части шаблона. Например так
base.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="en"> <head> {% include head.html %} </head> <body> {% block body %} {% block navigation %} {% endblock navigation %} <h1>My Webpage</h1> {{ a_variable }} {% endblock body %} </body> </html>
{% extends base.html %} {% block navigation %} <ul id="navigation"> {% for item in navigation %} <li><a href="{{ item.href }}">{{ item.caption }}</a></li> {% endfor %} </ul> {% endblock navigation %}
Отредактировано PanovSergey (Март 25, 2014 19:38:01)
Офлайн
PanovSergey
Flask тут вообще не причем. Читайте доки к jinja2 подход одинаковый что фласком что пирамид что с джанго что вообще с fabric whateveryouwant.
Офлайн
PanovSergey
И Инклуд в данном случае никак не заменяет наследование шаблона. Инкуд используется для выноса одинакового куска кода в отдельный файл, наследование для перекрытия части шаблона.
Офлайн
defondРекомендую бросить читать
Вот такая статья с Хабра пойдет для ориентира?
Офлайн
defondНу вот наследование в картинках
С наследованием пока не очень. Пробую.
Отредактировано PanovSergey (Март 25, 2014 20:07:40)
Офлайн
Доки - наше все. С них начинаю. Но в доках часто мало вразумительных примеров.
Спасибо за ссылки. Буду посмотреть.
Офлайн