Найти тему
Arduino и прочее

Python Flask. Наследование и неменяющиеся элементы.

Всем хай, сегодня мы поговорим о том, как уменьшить количество HTML CSS кода в сайте на Flask. Будем мы пользоваться возможностями шаблонизатора jinja2, который встроен в наш любимый Flask.

Начнём с того, что я сделаю тестовый стенд и расскажу как это работает. Для вас это займёт даже меньше секунды.

-2

На этих двух страницах отличается только блок с контентом, а блоки Header footer абсолютно одинаковые. Посмотрим на код python что-ли?

-3

Код сервера не отличается ничем от обычного сервера с двумя страницами, всё дело в том, что это делается в html файлах. Их в данном случае три. Сначала глянем самый главный.

-4

Вроде бы классический html но что-то тут не так, не думаете? Самые внимательные заметят что тут странно выглядят именно те части, которые меняются на страницах. Ну а не очень внимательные заметят только то, что содержимое title и main выглядит странно.

Эти конструкции используются для того, чтобы обозначить места, куда будут вставляться блоки, которые как раз и меняются. Это файл есть база. base.html

Но где же блоки, которые выводятся на страницах? А вот они же как раз на своих местах. Файлы home.html и hello.html, которые указаны как шаблоны для рендера в фласк сервере мы сейчам и посмотрим.

hello.html
hello.html
home.html
home.html

Сначала мы в обоих файлах определяем файл, в который будет вставлено содержимое блоков, идущих дальше. Эти блоки заполнены содержимым, которое вставляется в base.html и потом целый файл идёт к клиенту.

Это собсна всё. Но тут ещё можно сделать цикл for, сделать что-то с if. Цикл for я сейчас покажу.

-7

Тут каждую итерацию добавляется элемент списка. Вот как это выглядит на странице:

-8

Работает. Ура!

На этом я прощаюсь с вами. Эта статья кажется получилась скудной и не очень вообще. пишу вечером и не особое желание писать было. Штош всем до встречи. Спасибо тем, кто читает мой щитпост.

Наука
7 млн интересуются