<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

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

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Python шаблонизатор Jinja. Часть 2

Python шаблонизатор Jinja. Часть 2

В одной из предыдущих статей про Jinja мы рассмотрели, как при помощи языка шаблонов можно динамически изменять строки. В сегодняшней статье мы рассмотрим данный фреймворк более подробно.

И так, с помощью шаблонизатора можно формировать документы в зависимости от введенных данных. Тоже можно сделать и с помощью форматирования строки в Python. Но при всем своем сходстве, Jinja все же является отдельным фреймворком, имея более широкий набор возможностей. И давайте посмотрим на них.

Экранирование данных

Бывает что в html документе вместо тегов нужно вывести их html-сущности такие как < или >. В подобных случаях используется метод escape():



from jinja2 import Template, escape

string = '<a>Myrusakov</a>'

# Конструкция string | e  экранирует символы <>
tm = Template("{{ string | e}}")
msg = tm.render(string=string)

print(msg)

# Функция делает тоже самое
print(escape(data))

# вывод

&lt;a&gt;Myrusakov&lt;/a&gt;

Цикл for

Выражение for используется для итерации по набору данных в шаблоне.

В следующем примере используется не простой строковый шаблон, а файл .txt, загружаемый с помощью загрузчика FileSystemLoader.

Для демонстрации примера создадим файл с расширением .py


# script.py
from jinja2 import Environment, FileSystemLoader

# данные для вывода, в виде списка словарей
languages = [
    {'name': 'C', 'rating': 17}, 
    {'name': 'Java', 'rating': 11}, 
    {'name': 'Python', 'rating': 11}, 
    {'name': 'C++', 'rating': 7}, 
    {'name': 'C#', 'rating': 3}, 
    {'name': 'JavaScript', 'rating': 2}
]

# Для  корректного исполнения файла создаем папку 
# templates рядом со скриптом
file_loader = FileSystemLoader('templates')

env = Environment(loader=file_loader)

# Шаблон извлекается из каталога templates
# методом get_template
template = env.get_template('showlang.txt')

output = template.render(languages=languages)
print(output)


В файл showlang.txt помещаем:


{% for lang in languages -%}
    {{ lang.name }} {{ lang.rating }}
{% endfor %}

В файле шаблона мы используем выражение формы для перебора коллекции. Мы показываем название и рейтинг. Символ тире рядом с символами % используется для управления пробелами.

Результат:


# вывод

C           17
Java        11
Python      11
C++          7
C#           3
JavaScript   2

Таким образом, мы узнали как экранировать символы и подставлять данные в текстовый файл с Python и Jinja.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.