Similar presentations:
Python. Условия
1.
Python14.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.
• Вывести первое и последнее значение словаря:• Вывод случайного значения словаря:
• Проход по всем элементам словаря и сортировка значений по
общей оценке (от начала до конца):