Форум сайта python.su
0
День добрый.
Не могу разобраться с логикой 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">
Офлайн
0
Офлайн
5
defond
наследования шаблона не для этого.
Надо просто в index.html вставить
{% include 'banner_index.html' %}
Отредактировано Singularitty (Март 25, 2014 17:07:35)
Офлайн
0
SingularittyСпасибо.
{% include ‘banner_index.html’ %}
Офлайн
19
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)
Офлайн
0
PanovSergey
Flask тут вообще не причем. Читайте доки к jinja2 подход одинаковый что фласком что пирамид что с джанго что вообще с fabric whateveryouwant.
Офлайн
0
PanovSergey
И Инклуд в данном случае никак не заменяет наследование шаблона. Инкуд используется для выноса одинакового куска кода в отдельный файл, наследование для перекрытия части шаблона.
Офлайн
19
defondРекомендую бросить читать
Вот такая статья с Хабра пойдет для ориентира?
Офлайн
19
defondНу вот наследование в картинках
С наследованием пока не очень. Пробую.

Отредактировано PanovSergey (Март 25, 2014 20:07:40)
Офлайн
0
Доки - наше все.
С них начинаю. Но в доках часто мало вразумительных примеров.
Спасибо за ссылки. Буду посмотреть.
Офлайн