1.04M
Category: programmingprogramming

Python. Условия

1.

Python
14.03.23

2.

Условия
• У нас будет вьюха, в которой будет случайно генерироваться
переменная, и в зависимости от того, что в переменной (больше
число 5 или меньше), будут выводиться соответствующие
уведомления:
1. Включён дневной режим.
2. Включён ночной режим.
• Небольшая демонстрация записи условий

3.

• Для начала создайте самый базовый шаблон:
1. Подключение библиотеки flask.
2. Инициализация приложения (app).
3. Инициализация route, и под ним инициализация метода index,
который будет возвращать рендеринг нашей шаблонной
страницы.
4. А для рендеринга нашей шаблонной страницы, разумеется, надо
создать index.html файл.
5. Ну и запустить всё это дело.
• А что я опустил в описании задачи вспомнить и дописать
самостоятельно.

4.

• Но помимо базового шаблона мы будем использовать
дополнительно в методе index и переменную «night», значение
которой будет рандомно определяться.
• Данная переменная будет нам генерировать псевдослучайные
числа. Конкретно именно этот метод будет генерировать их от
нуля до еденицы.
• И потому, разумеется, для каждого очередного запуска данной
вьюхи будет своё рандомное значение.

5.

• Теперь про условия: условия в Jinja очень похожи на условия в
python и, как и в большинстве языков программирования,
начинается с ключевого слова «if».
• Кстати о Jinja: Jinja — это не только город в Восточном регионе
Уганды и японский храм, но и обработчик шаблонов.
• Обычно используют обработчики шаблонов для веб-шаблонов,
которые получают динамический контент из бэкенда и
отображают его как статическую страницу во фронтенде.
• Но вы можете использовать Jinja без веб-фреймворка,
работающего в фоновом режиме.

6.

• Импортировать эту дичь необязательно, она реально просто
может работать в фоне. Так что пока голову можно не забивать
этим.
• Как юзаются условия:

7.

• В отличии от питона, в Jinja условия/циклы и все такие
конструкции не обрамляются пробелами и они больше похожи на
какие-нибудь си’шные языки.
• Т.е. я могу ставить/не ставить какие-либо пробелы и ничего не
будет.
• И еще одно отличие от питона – нам надо обязательно писать
конструкцию «endif», которая будет показывать где именно
кончается блок этого if.
• Это нужно из-за того, что у нас нет никаких отступов, и надо явно
указывать, где мы закончим.

8.

• Циклы
• Пусть здесь у нас будет вьюха, которая будет выводить список
студентов
• Создайте соответствующий html файл для этих студентов.

9.

• Использование конструкции for аналогичное if:

10.

• Вложенные циклы
• Соблюдение пробелов не обязательно, всем на них пофиг.

11.

• Немного о базовых конструкциях: зачастую многие элементы
каких бы то ни было сайтов повторяются.
• Заголовки, гамбургер-менюшки и прочее. Естественно
прописывать это всё не очень прикольно раз за разом, так что для
этого сделали сокращение в виде базовых конструкций.

12.

• Есть у нас выше наш main и есть страница about-us:
• Шаблоны шаблонные с минимальными отличиями.

13.

• Создадим базированный html файлик:

14.

• И после этого уже в html файле о нас сделаем следующее:

15.

• И в main сделаем аналогично, но с другим заголовком,
разумеется:

16.

• Можно запускать. Всё отработает и пусть результат не то что бы
уж явно виден, но если мы теперь что либо изменим в шаблоне
базированного html файлика, то эти изменения будут видны и на
main странице, и на about-us странице.
• Можете попробовать поменять.

17.

• Фильтры
• Ну типа:

18.

• И мы можем проводить с этими словарями определённые
операции.
• Например, округление оценки колледжа. Вместо того, чтобы
округлять наши значения на стороне питона, мы можем это делать
на стороне Jinja.
• Для начала просто выведем наши еще не округлённые значения:

19.

• Для того, чтобы использовать фильтры, мы юзаем следующий
синтаксис:

20.

• Можно попробовать заюзать так же фильтры подрезки truncate.
Если я хочу заюзать описание колледжа, к примеру, но мой
контент рассчитан только на определённое кол-во символов –
частая вещь в дизайне вёрстки, что если текст слишком длинный
– то он вылезет и будет криво.
• Поэтому буду выводить достоинства колледжа с применением
данной фичи:

21.

• Или так дополнить:

22.

• Сумма всех общих оценок по нашему атрибуту:
• Минимальная оценка среди колледжей:
• Возвращение значения по ключу:

23.

• Вывести первое и последнее значение словаря:
• Вывод случайного значения словаря:
• Проход по всем элементам словаря и сортировка значений по
общей оценке (от начала до конца):

24.

• Ну и на этом всё покамест.
English     Русский Rules